You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
31 lines
959 B
31 lines
959 B
#!/usr/bin/env python |
|
import sys |
|
import os |
|
|
|
# Take a sysroot directory and turn all the abolute symlinks and turn them into |
|
# relative ones such that the sysroot is usable within another system. |
|
|
|
if len(sys.argv) != 2: |
|
print("Usage is " + sys.argv[0] + "<directory>") |
|
sys.exit(1) |
|
|
|
topdir = sys.argv[1] |
|
topdir = os.path.abspath(topdir) |
|
|
|
def handlelink(filep, subdir): |
|
link = os.readlink(filep) |
|
if link[0] != "/": |
|
return |
|
if link.startswith(topdir): |
|
return |
|
#print("Replacing %s with %s for %s" % (link, topdir+link, filep)) |
|
print("Replacing %s with %s for %s" % (link, os.path.relpath(topdir+link, subdir), filep)) |
|
os.unlink(filep) |
|
os.symlink(os.path.relpath(topdir+link, subdir), filep) |
|
|
|
for subdir, dirs, files in os.walk(topdir): |
|
for f in files: |
|
filep = os.path.join(subdir, f) |
|
if os.path.islink(filep): |
|
#print("Considering %s" % filep) |
|
handlelink(filep, subdir)
|
|
|