ansible/copy
Michael DeHaan 62dee290c5 Implment copy with an actual minion-side module such that we can get md5sum's and
onchange events like Puppet's file providers do.
2012-02-24 05:15:28 -05:00

40 lines
695 B
Python

#!/usr/bin/python
import sys
import os
try:
import json
except ImportError:
import simplejson as json
source = sys.argv[1]
dest = sys.argv[2]
# raise an error if there is no source file
if not os.path.exists(source):
print json.dumps({
"failed" : 1,
"msg" : "Source %s failed to transfer" % source
})
sys.exit(1)
md5sum = None
changed = False
if os.path.exists(dest):
md5sum = os.popen("md5sum %s" % dest).read()
os.system("cp %s %s" % (source, dest))
md5sum2 = os.popen("md5sum %s" % dest).read()
if md5sum != md5sum2:
changed = True
# mission accomplished
print json.dumps({
"md5sum" : md5sum2,
"changed" : changed
})