| #!/usr/bin/env python3 |
| |
| import os |
| import sys |
| import argparse |
| import platform |
| |
| if __name__=='__main__': |
| parser = argparse.ArgumentParser() |
| parser.add_argument('availpath') |
| parser.add_argument('confpath') |
| parser.add_argument('links', nargs='+') |
| args = parser.parse_args() |
| |
| if os.path.isabs(args.confpath): |
| destdir = os.environ.get('DESTDIR') |
| if destdir: |
| confpath = os.path.join(destdir, args.confpath[1:]) |
| else: |
| confpath = args.confpath |
| else: |
| confpath = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], args.confpath) |
| |
| if not os.path.exists(confpath): |
| os.makedirs(confpath) |
| |
| for link in args.links: |
| src = os.path.join(args.availpath, link) |
| dst = os.path.join(confpath, link) |
| try: |
| os.remove(dst) |
| except FileNotFoundError: |
| pass |
| try: |
| os.symlink(src, dst) |
| except NotImplementedError: |
| # Not supported on this version of Windows |
| break |
| except OSError as e: |
| # Symlink privileges are not available |
| if platform.system().lower() == 'windows' and e.winerror == 1314: |
| break |
| raise |