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(): 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(): 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(): 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_share_pkgconfig(): if is_abslink("share/pkgconfig"): return for i in common.treedir("share/pkgconfig"): if i.is_file(): make.link(f"share/pkgconfig/{i.name}", "/share/pkgconfig/" + i.name) def autolink_services(): for i in common.treedir("share/services"): if i.is_file() and os.access(i.path, os.F_OK): make.link(f"share/services/{i.name}", "/share/services/" + i.name) def autolink_milestones(): for i in common.treedir("share/milestones"): if i.is_file() and os.access(i.path, os.F_OK): make.link(f"share/milestones/{i.name}", "/share/milestones/" + i.name) def autolink(composer: pkgcomposer.PkgComposer): os.chdir(composer.workdir + "/bundle/") try: autolink_bin() except: pass try: autolink_lib() except: pass try: autolink_include() except: pass try: autolink_share_pkgconfig() except: pass try: autolink_services() except: pass try: autolink_milestones() except: pass