# HG changeset patch
# User Alexander Solovyov <piranha@piranha.org.ua>
# Date 1246173555 -10800
# Node ID 3cd12624405565a4aabc3291c297e6b6ee1e829e
# Parent  8e56f2a8b90aec007b3780944cfbc5d1577e5fd6
slightly better api for fancyopts

diff -r 8e56f2a8b90a -r 3cd126244055 fancycmd.py
--- a/fancycmd.py	Sat Jun 27 22:17:18 2009 +0300
+++ b/fancycmd.py	Sun Jun 28 10:19:15 2009 +0300
@@ -11,12 +11,14 @@
 # Public interface
 # --------
 
-def fancyopts(cmd, usage, options, args):
-    if not args:
-        cmd_help(cmd, usage, options)
-    else:
-        opts, args = parse(args, options)
-        cmd(*args, **opts)
+def fancyopts(cmd, options, usage):
+    def inner(args):
+        if not args:
+            cmd_help(cmd, usage, options)
+        else:
+            opts, args = parse(args, options)
+            cmd(*args, **opts)
+    return inner
 
 def dispatch(args, cmdtable, globalopts=None):
     '''Dispatch command arguments based on subcommands.
diff -r 8e56f2a8b90a -r 3cd126244055 test_opts.py
--- a/test_opts.py	Sat Jun 27 22:17:18 2009 +0300
+++ b/test_opts.py	Sun Jun 28 10:19:15 2009 +0300
@@ -17,4 +17,4 @@
     print opts.get('pid_file')
 
 if __name__ == '__main__':
-    fancyopts(main, '%s [-l HOST] DIR' % sys.argv[0], opts, sys.argv[1:])
+    fancyopts(main, opts, usage='%s [-l HOST] DIR' % sys.argv[0])(sys.argv[1:])