From 76da315f8198b07eb736aa332b0df25a60207a22 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 23 May 2018 08:19:30 +0530 Subject: [PATCH] ... --- kitty/cmds.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/kitty/cmds.py b/kitty/cmds.py index a1e9c156f..f0d870b5c 100644 --- a/kitty/cmds.py +++ b/kitty/cmds.py @@ -26,7 +26,7 @@ class OpacityError(ValueError): hide_traceback = True -def cmd(short_desc, desc=None, options_spec=None, no_response=False, argspec='...', string_return_is_error=False): +def cmd(short_desc, desc=None, options_spec=None, no_response=False, argspec='...', string_return_is_error=False, args_count=None): def w(func): func.short_desc = short_desc @@ -38,6 +38,7 @@ def w(func): func.impl = lambda: globals()[func.__name__[4:]] func.no_response = no_response func.string_return_is_error = string_return_is_error + func.args_count = args_count return func return w @@ -604,15 +605,14 @@ def set_colors(boss, window, payload): cause colors to be changed in all windows. ''' + '\n\n' + MATCH_WINDOW_OPTION + '\n\n' + MATCH_TAB_OPTION.replace('--match -m', '--match-tab -t'), - argspec='OPACITY' + argspec='OPACITY', + args_count=1 ) def cmd_set_background_opacity(global_opts, opts, args): - if len(args) != 1: - raise SystemExit('Must specify exactly one argument, the new opacity') opacity = max(0.1, min(float(args[0]), 1.0)) return { 'opacity': opacity, 'match_window': opts.match, - 'all': opts.all or opts.reset, + 'all': opts.all, } @@ -637,6 +637,8 @@ def set_background_opacity(boss, window, payload): def parse_subcommand_cli(func, args): opts, items = parse_args(args[1:], (func.options_spec or '\n').format, func.argspec, func.desc, '{} @ {}'.format(appname, func.name)) + if func.args_count is not None and func.args_count != len(items): + raise SystemExit('Must specify exactly {} argument(s) for {}'.format(func.args_count, func.name)) return opts, items