Guest User

Untitled

a guest
Jan 21st, 2018
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.23 KB | None | 0 0
  1. #!/opt/local/bin/python2.6
  2.  
  3. # DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
  4. # Version 1, September 2011
  5. # written by Knut Ahlers (knut@ahlers.me)
  6. #
  7. # Example config at ~/sync_project.yaml:
  8. #
  9. # projectname:
  10. # flags: -ar --progress
  11. # src: /home/knut/srcdir/
  12. # dst: knut@somesrv.com:dstdir/
  13.  
  14. import yaml, os, sys, subprocess
  15.  
  16. EX_OK = 0
  17. EX_USAGE = 64
  18. EX_IOERR = 74
  19. EX_CONFIG = 78
  20.  
  21. def main(argv = None):
  22. if argv == None:
  23. argv = sys.argv
  24.  
  25. if len(argv) != 2:
  26. print 'Usage: %s <project name to sync>' % argv[0]
  27. return EX_USAGE
  28.  
  29. try:
  30. projects_file = open(os.path.expanduser('~/sync_project.yaml'))
  31. except:
  32. print 'Please set up configuration file at "~/sync_project.yaml"'
  33. return EX_IOERR
  34. projects = yaml.load(projects_file)
  35.  
  36. project = argv[1]
  37. if project not in projects:
  38. print 'Project "%s" not found in config.' % project
  39. return EX_CONFIG
  40.  
  41. settings = projects[project]
  42.  
  43. command = 'rsync %s %s %s' % (settings['flags'], settings['src'], settings['dst'])
  44.  
  45. returnval = subprocess.call(command, shell=True)
  46.  
  47. if returnval == EX_OK:
  48. print
  49. print "OK"
  50. return EX_OK
  51. else:
  52. print
  53. print "Execute failed: Code %d" % returnval
  54. return returnval
  55.  
  56.  
  57. if __name__ == "__main__":
  58. sys.exit(main())
Add Comment
Please, Sign In to add comment