diff options
author | Björn B. Brandenburg <bbb@cs.unc.edu> | 2010-06-10 17:52:23 -0400 |
---|---|---|
committer | Björn B. Brandenburg <bbb@cs.unc.edu> | 2010-06-10 17:52:23 -0400 |
commit | f03d628e1e8bcdbf36aa28e23ca5266e7bafef12 (patch) | |
tree | 7da2e14971736706fe08f062ed795c7941cb535c /resolve-symlink.py | |
parent | ade7a3224c59a7a460ac1cb75e4b522f0d44282c (diff) |
add simple tool to substitute symlinks with their target file
Diffstat (limited to 'resolve-symlink.py')
-rwxr-xr-x | resolve-symlink.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/resolve-symlink.py b/resolve-symlink.py new file mode 100755 index 0000000..a9107a9 --- /dev/null +++ b/resolve-symlink.py | |||
@@ -0,0 +1,21 @@ | |||
1 | #!/usr/bin/env python | ||
2 | |||
3 | import os | ||
4 | import sys | ||
5 | import shutil | ||
6 | |||
7 | def resolve_symlinks(links): | ||
8 | for f in links: | ||
9 | try: | ||
10 | target = os.readlink(f) | ||
11 | if target[0] != '/': | ||
12 | # make absolute | ||
13 | target = os.path.join(os.path.dirname(f), target) | ||
14 | os.unlink(f) | ||
15 | shutil.move(target, f) | ||
16 | except OSError, err: | ||
17 | print "Failed: %s (%s)" % (f, err) | ||
18 | |||
19 | |||
20 | if __name__ == '__main__': | ||
21 | resolve_symlinks(sys.argv[1:]) | ||