From 65923e47a8de695c8acd0f89e5f20853751ca148 Mon Sep 17 00:00:00 2001 From: Scott Baker Date: Fri, 26 Sep 2014 12:23:27 -0700 Subject: [PATCH] diff-opencloud tool --- planetstack/tools/copy-opencloud.py | 4 ++- planetstack/tools/diff-opencloud.py | 47 +++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 planetstack/tools/diff-opencloud.py diff --git a/planetstack/tools/copy-opencloud.py b/planetstack/tools/copy-opencloud.py index 2f6a2cb..205ea2d 100644 --- a/planetstack/tools/copy-opencloud.py +++ b/planetstack/tools/copy-opencloud.py @@ -23,7 +23,9 @@ if destfn.endswith("/"): destfn = destfn + os.path.basename(srcfn) enctext = base64.b64encode(open(srcfn).read()) -script = "base64 -d -i > %s <> sys.stderr, "syntax: diff-opencloud " + sys.exit(-1) + +srcfn = sys.argv[1] +dest = sys.argv[2] + +if not ":" in dest: + print >> sys.stderr, "malformed desthost:destfn" + sys.exit(-1) + +(hostname,destfn) = dest.split(":",1) + +if destfn.endswith("/"): + destfn = destfn + os.path.basename(srcfn) + +script = 'echo START; base64 %s' % destfn + +file("/tmp/script","w").write(script) + +p = subprocess.Popen(["ssh", "-A", hostname], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) +enctext = p.communicate(input=script)[0] + +enctext = enctext.split("START")[1] + +text = base64.b64decode(enctext) + +file("/tmp/diff-src","w").write(text) +os.system("diff /tmp/diff-src %s" % srcfn) + +""" +SRCPATHNAME=$1 +DESTHOSTNAME=$2 +DESTPATHNAME=$3 +echo "base64 -d -i > $DESTPATHNAME < /tmp/ssh-up +base64 $SRCPATHNAME >> /tmp/ssh-up +echo "EOF" >> /tmp/ssh-up +ssh -A $DESTHOSTNAME < /tmp/ssh-up +""" -- 2.43.0