chiark / gitweb /
configure.ac, debian/: Overhaul Wireshark plugin build machinery.
[tripe] / keys / tripe-keys.in
index 47a4417c981886a38f2acfe308ac73fd2a50c77d..46e1816a886ad8e46f56caba465ba9498d6fdb0e 100644 (file)
@@ -344,8 +344,9 @@ Subcommands available:
     args = commands.keys()
     args.sort()
   for c in args:
-    func, min, max, help = commands[c]
-    print '%s %s' % (c, help)
+    try: func, min, max, help = commands[c]
+    except KeyError: die("unknown command `%s'" % c)
+    print '%s%s%s' % (c, help and ' ', help)
 
 ###--------------------------------------------------------------------------
 ### Commands: newmaster
@@ -419,6 +420,16 @@ def cmd_upload(args):
     for base in commit:
       new = '%s.new' % base
       OS.rename(new, base)
+
+    ## Remove files in the base-dir which don't correspond to ones we just
+    ## committed
+    allow = {}
+    basedir = conf['base-dir']
+    bdl = len(basedir)
+    for base in commit:
+      if base.startswith(basedir): allow[base[bdl:]] = 1
+    for found in OS.listdir(basedir):
+      if found not in allow: OS.remove(OS.path.join(basedir, found))
   finally:
     OS.chdir(cwd)
     rmtree('tmp')
@@ -460,7 +471,7 @@ def cmd_update(args):
     OS.chdir(cwd)
     if OS.path.exists('repos'): OS.rename('repos', 'repos.old')
     OS.rename('tmp/repos', 'repos')
-    if not FC.cmp('tmp/tripe-keys.conf', 'tripe-keys.conf'):
+    if not FC.cmp('tmp/tripe-keys.conf', 'tripe-keys.conf', False):
       moan('configuration file changed: recommend running another update')
       OS.rename('tmp/tripe-keys.conf', 'tripe-keys.conf')
     rmtree('repos.old')
@@ -554,9 +565,6 @@ def cmd_mtu(args):
 ###--------------------------------------------------------------------------
 ### Main driver.
 
-## Exceptions.
-class UsageError (Exception): pass
-
 commands = {'help': (cmd_help, 0, 1, ''),
             'newmaster': (cmd_newmaster, 0, 0, ''),
             'setup': (cmd_setup, 0, 0, ''),
@@ -604,10 +612,12 @@ def main(argv):
     cmd_help([])
   else:
     c = argv[1]
-    func, min, max, help = commands[c]
+    try: func, min, max, help = commands[c]
+    except KeyError: die("unknown command `%s'" % c)
     args = argv[2:]
-    if len(args) < min or (max > 0 and len(args) > max):
-      raise UsageError, (c, help)
+    if len(args) < min or (max is not None and len(args) > max):
+      SYS.stderr.write('Usage: %s %s%s%s\n' % (quis, c, help and ' ', help))
+      SYS.exit(1)
     func(args)
 
 ###----- That's all, folks --------------------------------------------------