forked from brl/citadel
32 lines
967 B
Python
32 lines
967 B
Python
|
#!/usr/bin/env python3
|
||
|
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 dirs + files:
|
||
|
filep = os.path.join(subdir, f)
|
||
|
if os.path.islink(filep):
|
||
|
#print("Considering %s" % filep)
|
||
|
handlelink(filep, subdir)
|