From 263fcab59430febe84c91a59876d1cd60c50a96e Mon Sep 17 00:00:00 2001 From: Dave Hatton Date: Tue, 3 Jul 2012 20:07:08 +0100 Subject: [PATCH] md5 allow copy if file is missing --- library/copy | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/library/copy b/library/copy index f4c4a0f770..7bf6cae0e7 100755 --- a/library/copy +++ b/library/copy @@ -66,29 +66,26 @@ if src: if dest: dest = os.path.expanduser(dest) +md5sum_src = None # raise an error if there is no src file if not os.path.exists(src): exit_kv(rc=1, failed=1, msg="Source %s failed to transfer" % (src)) - -# raise an error if there is no dest file -if not os.path.exists(dest): - exit_kv(rc=1, failed=1, msg="Destination %s does not exist" % (dest)) - -# raise an error if copy has no permission on dest -if not os.access(dest, os.W_OK): - exit_kv(rc=1, failed=1, msg="Destination %s not writable" % (dest)) -elif not os.access(dest, os.R_OK): - exit_kv(rc=1, failed=1, msg="Destination %s not readable" % (dest)) - -md5sum_src = None +if not os.access(src, os.R_OK): + exit_kv(rc=1, failed=1, msg="Source %s not readable" % (src)) md5sum_src = md5_sum(src) md5sum_dest = None -try: +# check if there is no dest file +if os.path.exists(dest): + # raise an error if copy has no permission on dest + if not os.access(dest, os.W_OK): + exit_kv(rc=1, failed=1, msg="Destination %s not writable" % (dest)) + if not os.access(dest, os.R_OK): + exit_kv(rc=1, failed=1, msg="Destination %s not readable" % (dest)) md5sum_dest = md5_sum(dest) -except IndexError: - # File doesn't exist yet, so clear to continue - pass +else: + if not os.access(os.path.dirname(dest), os.W_OK): + exit_kv(rc=1, failed=1, msg="Destination %s not writable" % (dest)) if md5sum_src != md5sum_dest: os.system("cp %s %s" % (src, dest)) @@ -97,6 +94,6 @@ else: changed = False # mission accomplished -#print "md5sum=%s changed=%s" % (md5sum_dest, changed) -exit_kv(dest=dest, src=src, changed="md5sum=%s changed=%s" % (md5sum_dest, changed)) +#print "md5sum=%s changed=%s" % (md5sum_src, changed) +exit_kv(dest=dest, src=src, changed="md5sum=%s changed=%s" % (md5sum_src, changed))