55 lines
1.2 KiB
Python
55 lines
1.2 KiB
Python
import os
|
|
|
|
from lib import arch, common, make, pkgcomposer
|
|
|
|
|
|
def is_abslink(path):
|
|
try:
|
|
return os.readlink(path).startswith("/")
|
|
except:
|
|
return False
|
|
|
|
|
|
def autolink_bin(composer: pkgcomposer.PkgComposer):
|
|
if is_abslink("bin"):
|
|
return
|
|
for i in common.treedir("bin"):
|
|
if i.is_file() and os.access(i.path, os.X_OK):
|
|
make.link(f"bin/{i.name}", "/bin/" + i.name)
|
|
|
|
def autolink_lib(composer: pkgcomposer.PkgComposer):
|
|
if is_abslink("lib"):
|
|
return
|
|
for i in common.treedir("lib"):
|
|
if i.is_file():
|
|
make.link(f"lib/{i.name}", "/lib/" + arch.get_target() + "/" + i.name)
|
|
|
|
def autolink_include(composer: pkgcomposer.PkgComposer):
|
|
if is_abslink("include"):
|
|
return
|
|
for i in common.treedir("include"):
|
|
if i.is_file():
|
|
make.link(
|
|
f"include/{i.name}",
|
|
"/lib/" + arch.get_target() + "/include/" + i.name,
|
|
)
|
|
|
|
|
|
def autolink(composer: pkgcomposer.PkgComposer):
|
|
os.chdir(composer.workdir + "/bundle/")
|
|
|
|
try:
|
|
autolink_bin(composer)
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
autolink_lib(composer)
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
autolink_include(composer)
|
|
except:
|
|
pass
|