Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/opt/local/bin/python2.6
- # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
- # Version 1, September 2011
- # written by Knut Ahlers (knut@ahlers.me)
- #
- # Example config at ~/sync_project.yaml:
- #
- # projectname:
- # flags: -ar --progress
- # src: /home/knut/srcdir/
- # dst: knut@somesrv.com:dstdir/
- import yaml, os, sys, subprocess
- EX_OK = 0
- EX_USAGE = 64
- EX_IOERR = 74
- EX_CONFIG = 78
- def main(argv = None):
- if argv == None:
- argv = sys.argv
- if len(argv) != 2:
- print 'Usage: %s <project name to sync>' % argv[0]
- return EX_USAGE
- try:
- projects_file = open(os.path.expanduser('~/sync_project.yaml'))
- except:
- print 'Please set up configuration file at "~/sync_project.yaml"'
- return EX_IOERR
- projects = yaml.load(projects_file)
- project = argv[1]
- if project not in projects:
- print 'Project "%s" not found in config.' % project
- return EX_CONFIG
- settings = projects[project]
- command = 'rsync %s %s %s' % (settings['flags'], settings['src'], settings['dst'])
- returnval = subprocess.call(command, shell=True)
- if returnval == EX_OK:
- print
- print "OK"
- return EX_OK
- else:
- print
- print "Execute failed: Code %d" % returnval
- return returnval
- if __name__ == "__main__":
- sys.exit(main())
Add Comment
Please, Sign In to add comment