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 | |
| parent | ade7a3224c59a7a460ac1cb75e4b522f0d44282c (diff) | |
add simple tool to substitute symlinks with their target file
| -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:]) | ||
