[tor-commits] [thandy/master] Handle Thp package creation in a separate CLI from Signer

nickm at torproject.org nickm at torproject.org
Thu Nov 3 19:14:20 UTC 2011


commit 48cdba812c660fccd16052f7f2119b867a736ec2
Author: Tomás Touceda <chiiph at torproject.org>
Date:   Thu Oct 20 09:54:30 2011 -0300

    Handle Thp package creation in a separate CLI from Signer
---
 lib/thandy/SignerCLI.py |   85 +-----------------------------------
 lib/thandy/ThpCLI.py    |  111 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 113 insertions(+), 83 deletions(-)

diff --git a/lib/thandy/SignerCLI.py b/lib/thandy/SignerCLI.py
index fd22c69..06536aa 100644
--- a/lib/thandy/SignerCLI.py
+++ b/lib/thandy/SignerCLI.py
@@ -3,10 +3,6 @@
 import os
 import getopt
 import sys
-import tempfile
-import time
-import shutil
-import zipfile
 
 import thandy.keys
 import thandy.formats
@@ -97,81 +93,6 @@ def makepackage(args):
     f.write(metaFile)
     f.close()
 
-def makethppackage(args):
-    options, args = getopt.getopt(args, "", "keyid=")
-    keyid = None
-    scriptsPath = None
-    for o,v in options:
-        if o == "--keyid":
-            keyid = v
-
-    if len(args) < 3:
-        usage()
-
-    tmpPath = tempfile.mkdtemp(suffix=str(time.time()),
-                               prefix="thp")
-
-    print "Using temporary directory: %s" % tmpPath
-
-    configFile = args[0]
-    dataPath = args[1]
-    thpPath = args[2]
-    if len(args) > 3:
-      scriptsPath = args[3]
-
-    print "Generating package metadata..."
-    metadata = thandy.formats.makeThpPackageObj(configFile, dataPath)
-
-    print "Generating directory structure..."
-    try:
-        os.mkdir(os.path.join(tmpPath, "meta"));
-    except Exception as e:
-        print e
-        thandy.util.deltree(tmpPath)
-        sys.exit(1)
-
-    thandy.util.replaceFile(os.path.join(tmpPath, "meta", "package.json"),
-                            json.dumps(metadata, indent=3))
-
-    shutil.copytree(dataPath, os.path.join(tmpPath, "content"))
-
-    if "scripts" in metadata:
-      try:
-          os.mkdir(os.path.join(tmpPath, "meta", "scripts"))
-      except Exception as e:
-          print e
-          thandy.util.deltree(tmpPath)
-          sys.exit(1)
-      for lang in metadata["scripts"]:
-        for script in metadata['scripts'][lang]:
-          shutil.copyfile(os.path.join(scriptsPath, script[0]),
-                          os.path.join(tmpPath, "meta", "scripts", script[0]))
-
-    thpFileName = "%s-%s.thp" % (metadata['package_name'],
-                                 metadata['package_version'])
-
-    print "Generating thp file in %s" % thpFileName
-    thpFile = zipfile.ZipFile(os.path.join(thpPath, 
-                                           thpFileName), "w")
-
-    for file in metadata['manifest']:
-        thpFile.write(os.path.join(tmpPath, "content", file['name']),
-                      os.path.join("content", file['name']))
-
-    if "scripts" in metadata:
-      for lang in metadata["scripts"]:
-        for script in metadata['scripts'][lang]:
-          thpFile.write(os.path.join(tmpPath, "meta", "scripts", script[0]),
-                        os.path.join("meta", "scripts", script[0]))
-
-    thpFile.write(os.path.join(tmpPath, "meta", "package.json"),
-                  os.path.join("meta", "package.json"))
-
-    thpFile.close()
-
-    print "All done. Cleaning tmp directory..."
-    thandy.util.deltree(tmpPath)
-
 def makebundle(args):
     options, args = getopt.getopt(args, "", "keyid=")
     keyid = None
@@ -386,7 +307,6 @@ def usage():
     print "  delrole keyid role path"
     print "  dumpkey [--include-secret] keyid"
     print "  makepackage config datafile"
-    print "  makethppackage config datapath thpPath scriptsPath"
     print "  makebundle config packagefile ..."
     print "  signkeylist keylist"
     print "  makekeylist keylist"
@@ -399,9 +319,8 @@ def main():
     cmd = sys.argv[1]
     args = sys.argv[2:]
     if cmd in [ "keygen", "listkeys", "addrole", "delrole", "chpass",
-                "dumpkey", "makepackage", "makebundle", "makethppackage",
-                "signkeylist", "makekeylist", "signkeylist", 
-                "makemirrorlist", ]:
+                "dumpkey", "makepackage", "makebundle", "signkeylist",
+                "makekeylist", "signkeylist", "makemirrorlist", ]:
         try:
             globals()[cmd](args)
         except thandy.BadPassword:
diff --git a/lib/thandy/ThpCLI.py b/lib/thandy/ThpCLI.py
new file mode 100644
index 0000000..52938d6
--- /dev/null
+++ b/lib/thandy/ThpCLI.py
@@ -0,0 +1,111 @@
+# Copyright 2011 The Tor Project, Inc.  See LICENSE for licensing information.
+
+import sys
+import os
+import getopt
+import tempfile
+import time
+import shutil
+import zipfile
+
+import thandy.keys
+import thandy.util
+import thandy.formats
+
+json = thandy.util.importJSON()
+
+def makethppackage(args):
+    options, args = getopt.getopt(args, "", "keyid=")
+    keyid = None
+    scriptsPath = None
+    for o,v in options:
+        if o == "--keyid":
+            keyid = v
+
+    if len(args) < 3:
+        usage()
+
+    tmpPath = tempfile.mkdtemp(suffix=str(time.time()),
+                               prefix="thp")
+
+    print "Using temporary directory: %s" % tmpPath
+
+    configFile = args[0]
+    dataPath = args[1]
+    thpPath = args[2]
+    if len(args) > 3:
+      scriptsPath = args[3]
+
+    print "Generating package metadata..."
+    metadata = thandy.formats.makeThpPackageObj(configFile, dataPath)
+
+    print "Generating directory structure..."
+    try:
+        os.mkdir(os.path.join(tmpPath, "meta"));
+    except Exception as e:
+        print e
+        thandy.util.deltree(tmpPath)
+        sys.exit(1)
+
+    thandy.util.replaceFile(os.path.join(tmpPath, "meta", "package.json"),
+                            json.dumps(metadata, indent=3))
+
+    shutil.copytree(dataPath, os.path.join(tmpPath, "content"))
+
+    if "scripts" in metadata:
+      try:
+          os.mkdir(os.path.join(tmpPath, "meta", "scripts"))
+      except Exception as e:
+          print e
+          thandy.util.deltree(tmpPath)
+          sys.exit(1)
+      for lang in metadata["scripts"]:
+        for script in metadata['scripts'][lang]:
+          shutil.copyfile(os.path.join(scriptsPath, script[0]),
+                          os.path.join(tmpPath, "meta", "scripts", script[0]))
+
+    thpFileName = "%s-%s.thp" % (metadata['package_name'],
+                                 metadata['package_version'])
+
+    print "Generating thp file in %s" % thpFileName
+    thpFile = zipfile.ZipFile(os.path.join(thpPath, 
+                                           thpFileName), "w")
+
+    for file in metadata['manifest']:
+        thpFile.write(os.path.join(tmpPath, "content", file['name']),
+                      os.path.join("content", file['name']))
+
+    if "scripts" in metadata:
+      for lang in metadata["scripts"]:
+        for script in metadata['scripts'][lang]:
+          thpFile.write(os.path.join(tmpPath, "meta", "scripts", script[0]),
+                        os.path.join("meta", "scripts", script[0]))
+
+    thpFile.write(os.path.join(tmpPath, "meta", "package.json"),
+                  os.path.join("meta", "package.json"))
+
+    thpFile.close()
+
+    print "All done. Cleaning tmp directory..."
+    thandy.util.deltree(tmpPath)
+
+def usage():
+    print "Known commands:"
+    print "  makethppackage config datapath thpPath scriptsPath"
+    sys.exit(1)
+
+def main():
+    if len(sys.argv) < 2:
+        usage()
+    cmd = sys.argv[1]
+    args = sys.argv[2:]
+    if cmd in [ "makethppackage", ]:
+        try:
+            globals()[cmd](args)
+        except thandy.BadPassword:
+            print >>sys.stderr, "Password incorrect."
+    else:
+        usage()
+
+if __name__ == '__main__':
+    main()





More information about the tor-commits mailing list