Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2
- '''
- Das Programm kopiert Dateien von src nach dst. Verzeichnisse werden erstellt, wenn sie nicht existieren.
- Dateien werden als Symlinks angelegt. Optional koennen auch relative Symlinks angelegt werden.
- '''
- from __future__ import print_function
- import os
- import sys
- import argparse
- def copy(src, dst, relative=False):
- src = os.path.abspath(src)
- dst = os.path.abspath(dst)
- try:
- os.mkdir(dst)
- except OSError:
- pass
- for root, dirs, files in os.walk(src):
- dstroot = os.path.join(dst, root[len(src):])
- for dir in dirs:
- dstpath = os.path.join(dstroot, dir)
- try:
- os.mkdir(dstpath)
- except OSError:
- pass
- for file in files:
- dstfile = os.path.join(dstroot, file)
- srcfile = os.path.join(root, file)
- if relative:
- srcfile = os.path.relpath(path=srcfile, start=dstroot)
- try:
- os.symlink(srcfile, dstfile)
- except OSError:
- pass
- def args():
- parser = argparse.ArgumentParser(prog='sycp', description=__doc__)
- parser.add_argument('src', help='Quellverzeichnis', action='store')
- parser.add_argument('dst', help='Zielverzeichnis', action='store')
- parser.add_argument('-r', '--relative', help='Relative Symlinks', action='store_true', default=False)
- return parser
- if __name__ == '__main__':
- parser = args()
- arguments = parser.parse_args()
- copy(arguments.src, arguments.dst, arguments.relative)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement