[Pkg-mozext-commits] [mozilla-devscripts] 01/12: xpi-repack: Use argparse instead of getopts.

Benjamin Drung bdrung at moszumanska.debian.org
Mon Mar 10 23:36:47 UTC 2014


This is an automated email from the git hooks/post-receive script.

bdrung pushed a commit to branch master
in repository mozilla-devscripts.

commit 11a0b6e945cbbeb5091c92b0479138fe0ebc305d
Author: Benjamin Drung <bdrung at debian.org>
Date:   Mon Mar 10 23:26:46 2014 +0100

    xpi-repack: Use argparse instead of getopts.
---
 xpi-repack | 64 ++++++++++++++++++++++----------------------------------------
 1 file changed, 23 insertions(+), 41 deletions(-)

diff --git a/xpi-repack b/xpi-repack
index f6705a2..1642f42 100755
--- a/xpi-repack
+++ b/xpi-repack
@@ -1,6 +1,6 @@
 #!/usr/bin/python
 
-# Copyright (c) 2010-2011, Benjamin Drung <bdrung at debian.org>
+# Copyright (c) 2010-2014, Benjamin Drung <bdrung at debian.org>
 #
 # Permission to use, copy, modify, and/or distribute this software for any
 # purpose with or without fee is hereby granted, provided that the above
@@ -14,7 +14,7 @@
 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
-import getopt
+import argparse
 import os
 import subprocess
 import sys
@@ -22,6 +22,7 @@ import sys
 # error codes
 COMMAND_LINE_SYNTAX_ERROR = 1
 
+
 def remove_recursive(path):
     """equivalent to rm -rf path"""
     if os.path.exists(path):
@@ -33,6 +34,7 @@ def remove_recursive(path):
                 os.remove(full_path)
         os.rmdir(path)
 
+
 def repack_xpi(package, upstream_version, xpi_file, verbose):
     # extract xpi file
     tmp_dir = "/tmp"
@@ -61,6 +63,7 @@ def repack_xpi(package, upstream_version, xpi_file, verbose):
     # remove temporary directory
     remove_recursive(full_extract_dir)
 
+
 def get_source_package_name(script_name):
     if not os.path.isfile("debian/control"):
         sys.stderr.write(script_name + ": Error: debian/control file is "
@@ -72,6 +75,7 @@ def get_source_package_name(script_name):
     packages = map(lambda x: x[x.find(":")+1:].strip(), package_lines)
     return packages[0]
 
+
 def usage(output):
     print >> output, """Usage: %s [options] <xpi-file>
 
@@ -86,47 +90,25 @@ General options:
 See %s(1) for more info.""" % (os.path.basename(sys.argv[0]),
                                os.path.basename(sys.argv[0]))
 
-def main():
-    try:
-        long_opts = ["help", "package=", "upstream-version=", "verbose"]
-        opts, args = getopt.gnu_getopt(sys.argv[1:], "hp:u:v", long_opts)
-    except getopt.GetoptError, e:
-        # will print something like "option -a not recognized"
-        print >> sys.stderr, str(e)
-        usage(sys.stderr)
-        sys.exit(COMMAND_LINE_SYNTAX_ERROR)
-
-    package = None
-    upstream_version = None
-    verbose = False
-
-    for o, a in opts:
-        if o in ("-h", "--help"):
-            usage(sys.stdout)
-            sys.exit()
-        elif o in ("-u", "--upstream-version"):
-            upstream_version = a
-        elif o in ("-p", "--package"):
-            package = a
-        elif o in ("-v", "--verbose"):
-            verbose = True
-        else:
-            assert False, "unhandled option"
 
+def main():
     script_name = os.path.basename(sys.argv[0])
-
-    if package is None:
-        package = get_source_package_name(script_name)
-
-    if len(args) == 0:
-        print >> sys.stderr, "%s: Error: No xpi file specified." % (script_name)
-        sys.exit(COMMAND_LINE_SYNTAX_ERROR)
-    elif len(args) > 1:
-        print >> sys.stderr, script_name + ": Error: Multiple xpi files " + \
-                             "specified: " + ", ".join(args)
-        sys.exit(COMMAND_LINE_SYNTAX_ERROR)
-
-    repack_xpi(package, upstream_version, args[0], verbose)
+    epilog = "See {prog}(1) for more info.".format(prog=script_name)
+    parser = argparse.ArgumentParser(epilog=epilog)
+    parser.add_argument("xpi_file", metavar="<xpi-file>",
+                        help=".xpi file that should be repacked")
+    parser.add_argument("-p", "--package", help="specify source package name")
+    parser.add_argument("-u", "--upstream-version", dest="version",
+                        help="specify the upstream version")
+    parser.add_argument("-v", "--verbose", action="store_true",
+                        help="print more information")
+
+    args = parser.parse_args()
+
+    if not args.package:
+        args.package = get_source_package_name(script_name)
+
+    repack_xpi(args.package, args.version, args.xpi_file, args.verbose)
 
 if __name__ == "__main__":
     main()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/mozilla-devscripts.git



More information about the Pkg-mozext-commits mailing list