# 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:])