]> arthur.barton.de Git - bup.git/commitdiff
options.py: add support for '-#' style compression options.
authorAvery Pennarun <apenwarr@gmail.com>
Sun, 15 May 2011 19:59:58 +0000 (15:59 -0400)
committerAvery Pennarun <apenwarr@gmail.com>
Sun, 15 May 2011 20:01:01 +0000 (16:01 -0400)
Signed-off-by: Avery Pennarun <apenwarr@gmail.com>
lib/bup/options.py
lib/bup/t/toptions.py

index c9a6cf52ea59a2542558c1ddbf5cb39146dfa3e3..cfbeea111fb00725090bdbb83eb83daa56aa8e14 100644 (file)
@@ -158,7 +158,10 @@ class Options:
                     self._aliases[f] = _remove_negative_k(flagl[0])
                     self._hasparms[f] = has_parm
                     self._defaults[f] = dvi
-                    if len(f) == 1:
+                    if f == '#':
+                        self._shortopts += '0123456789'
+                        flagl_nice.append('-#')
+                    elif len(f) == 1:
                         self._shortopts += f + (has_parm and ':' or '')
                         flagl_nice.append('-' + f)
                     else:
@@ -220,6 +223,11 @@ class Options:
             if k.startswith('no-'):
                 k = self._aliases[k[3:]]
                 v = 0
+            elif (self._aliases.get('#') and
+                  k in ('0','1','2','3','4','5','6','7','8','9')):
+                v = int(k)  # guaranteed to be exactly one digit
+                k = self._aliases['#']
+                opt['#'] = v
             else:
                 k = self._aliases[k]
                 if not self._hasparms[k]:
index d01ba512e15ac828045d8272d0592539158b53bd..7a0da0c60c32e837d4cac817071105bc6394bd63 100644 (file)
@@ -38,13 +38,14 @@ deftest3=  a default option with [3] no actual default
 deftest4=  a default option with [[square]]
 deftest5=  a default option with "correct" [[square]
 no-stupid  disable stupidity
+#,compress=  set compression level [5]
 """
 
 @wvtest
 def test_options():
     o = options.Options(optspec)
     (opt,flags,extra) = o.parse(['-tttqp', 7, '--longoption', '19',
-                                 'hanky', '--onlylong'])
+                                 'hanky', '--onlylong', '-7'])
     WVPASSEQ(flags[0], ('-t', ''))
     WVPASSEQ(flags[1], ('-t', ''))
     WVPASSEQ(flags[2], ('-t', ''))
@@ -57,5 +58,8 @@ def test_options():
     WVPASSEQ((opt.deftest1, opt.deftest2, opt.deftest3, opt.deftest4,
               opt.deftest5), (1,2,None,None,'[square'))
     WVPASSEQ((opt.stupid, opt.no_stupid), (True, False))
+    WVPASSEQ(opt['#'], 7)
+    WVPASSEQ(opt.compress, 7)
+
     (opt,flags,extra) = o.parse(['--onlylong', '-t', '--no-onlylong'])
     WVPASSEQ((opt.t, opt.q, opt.onlylong), (1, None, 0))