Преглед на файлове

gw.py: More cleanups to argument handling.
'update --bootloader' requires argument spelled out in full.

Keir Fraser преди 4 години
родител
ревизия
df38d91fc4

+ 2 - 2
scripts/greaseweazle/tools/bandwidth.py

@@ -7,7 +7,7 @@
 # This is free and unencumbered software released into the public domain.
 # See the file COPYING for more details, or visit <http://unlicense.org>.
 
-import sys, argparse
+import sys
 
 from timeit import default_timer as timer
 
@@ -41,7 +41,7 @@ def measure_bandwidth(usb, args):
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser()
     parser.add_argument("device", nargs="?", default="auto",
                         help="serial device")
     parser.prog += ' ' + argv[1]

+ 2 - 2
scripts/greaseweazle/tools/delays.py

@@ -7,14 +7,14 @@
 # This is free and unencumbered software released into the public domain.
 # See the file COPYING for more details, or visit <http://unlicense.org>.
 
-import sys, argparse
+import sys
 
 from greaseweazle.tools import util
 from greaseweazle import usb as USB
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser()
     parser.add_argument("--select", type=int,
                         help="delay after drive select (usecs)")
     parser.add_argument("--step", type=int,

+ 2 - 2
scripts/greaseweazle/tools/erase.py

@@ -7,7 +7,7 @@
 # This is free and unencumbered software released into the public domain.
 # See the file COPYING for more details, or visit <http://unlicense.org>.
 
-import sys, argparse
+import sys
 
 from greaseweazle.tools import util
 from greaseweazle import usb as USB
@@ -31,7 +31,7 @@ def erase(usb, args):
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser()
     parser.add_argument("--drive", type=util.drive_letter, default='A',
                         help="drive to write (A,B,0,1,2)")
     parser.add_argument("--scyl", type=int, default=0,

+ 1 - 1
scripts/greaseweazle/tools/pin.py

@@ -20,7 +20,7 @@ def level(letter):
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser()
     parser.add_argument("pin", type=int,
                         help="pin number")
     parser.add_argument("level", type=level,

+ 2 - 2
scripts/greaseweazle/tools/read.py

@@ -7,7 +7,7 @@
 # This is free and unencumbered software released into the public domain.
 # See the file COPYING for more details, or visit <http://unlicense.org>.
 
-import sys, argparse
+import sys
 
 from greaseweazle.tools import util
 from greaseweazle import error
@@ -42,7 +42,7 @@ def read_to_image(usb, args, image):
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser()
     parser.add_argument("--drive", type=util.drive_letter, default='A',
                         help="drive to read (A,B,0,1,2)")
     parser.add_argument("--revs", type=int, default=3,

+ 2 - 2
scripts/greaseweazle/tools/reset.py

@@ -7,14 +7,14 @@
 # This is free and unencumbered software released into the public domain.
 # See the file COPYING for more details, or visit <http://unlicense.org>.
 
-import sys, argparse
+import sys
 
 from greaseweazle.tools import util
 from greaseweazle import usb as USB
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser()
     parser.add_argument("device", nargs="?", default="auto",
                         help="serial device")
     parser.prog += ' ' + argv[1]

+ 3 - 4
scripts/greaseweazle/tools/update.py

@@ -7,7 +7,7 @@
 # This is free and unencumbered software released into the public domain.
 # See the file COPYING for more details, or visit <http://unlicense.org>.
 
-import sys, argparse, serial, struct, os
+import sys, serial, struct, os
 import crcmod.predefined
 
 from greaseweazle.tools import util
@@ -86,7 +86,7 @@ def update_firmware(usb, args):
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser(allow_abbrev=False)
     parser.add_argument("file", nargs="?", default="auto",
                         help="update filename")
     parser.add_argument("device", nargs="?", default="auto",
@@ -96,9 +96,8 @@ def main(argv):
     parser.prog += ' ' + argv[1]
     args = parser.parse_args(argv[2:])
 
-    usb = util.usb_open(args.device, is_update=not args.bootloader)
-
     try:
+        usb = util.usb_open(args.device, is_update=not args.bootloader)
         update_firmware(usb, args)
     except USB.CmdError as error:
         print("Command Failed: %s" % error)

+ 5 - 0
scripts/greaseweazle/tools/util.py

@@ -31,6 +31,11 @@ class CmdlineHelpFormatter(argparse.ArgumentDefaultsHelpFormatter):
         return help + ' (default: %(default)s)'
 
 
+class ArgumentParser(argparse.ArgumentParser):
+    def __init__(self, formatter_class=CmdlineHelpFormatter, *args, **kwargs):
+        return super().__init__(formatter_class=formatter_class,
+                                *args, **kwargs)
+
 def drive_letter(letter):
     types = {
         'A': (USB.BusType.IBMPC, 0),

+ 2 - 2
scripts/greaseweazle/tools/write.py

@@ -7,7 +7,7 @@
 # This is free and unencumbered software released into the public domain.
 # See the file COPYING for more details, or visit <http://unlicense.org>.
 
-import sys, argparse
+import sys
 
 from greaseweazle.tools import util
 from greaseweazle import usb as USB
@@ -68,7 +68,7 @@ def write_from_image(usb, args, image):
 
 def main(argv):
 
-    parser = argparse.ArgumentParser(formatter_class=util.CmdlineHelpFormatter)
+    parser = util.ArgumentParser()
     parser.add_argument("--drive", type=util.drive_letter, default='A',
                         help="drive to write (A,B,0,1,2)")
     parser.add_argument("--scyl", type=int, default=0,