--- a/hgext/evolve.py Thu Mar 19 17:42:21 2015 -0700
+++ b/hgext/evolve.py Thu Mar 19 10:52:28 2015 -0700
@@ -141,8 +141,11 @@
"""
for cont, funcname, func in self._duckpunchers:
setattr(cont, funcname, func)
- for command, wrapper in self._commandwrappers:
- extensions.wrapcommand(commands.table, command, wrapper)
+ for command, wrapper, opts in self._commandwrappers:
+ entry = extensions.wrapcommand(commands.table, command, wrapper)
+ if opts:
+ for short, long, val, msg in opts:
+ entry[1].append((short, long, val, msg))
for cont, funcname, wrapper in self._functionwrappers:
extensions.wrapfunction(cont, funcname, wrapper)
for c in self._uicallables:
@@ -163,13 +166,17 @@
revset.symbols[name] = symbol
for name, kw in self._templatekws:
templatekw.keywords[name] = kw
- for ext, command, wrapper in self._extcommandwrappers:
+ for ext, command, wrapper, opts in self._extcommandwrappers:
if ext not in knownexts:
e = extensions.find(ext)
if e is None:
raise util.Abort('extension %s not found' % ext)
knownexts[ext] = e.cmdtable
- extensions.wrapcommand(knownexts[ext], commands, wrapper)
+ entry = extensions.wrapcommand(knownexts[ext], command, wrapper)
+ if opts:
+ for short, long, val, msg in opts:
+ entry[1].append((short, long, val, msg))
+
for c in self._extcallables:
c(ui)
@@ -257,7 +264,7 @@
return keyword
return dec
- def wrapcommand(self, command, extension=None):
+ def wrapcommand(self, command, extension=None, opts=[]):
"""Decorated function is a command wrapper
The name of the command must be given as the decorator argument.
@@ -276,12 +283,16 @@
ui.note('Barry!')
return orig(ui, repo, *args, **kwargs)
+ The `opts` argument allows specifying additional arguments for the
+ command.
+
"""
def dec(wrapper):
if extension is None:
- self._commandwrappers.append((command, wrapper))
+ self._commandwrappers.append((command, wrapper, opts))
else:
- self._extcommandwrappers.append((extension, command, wrapper))
+ self._extcommandwrappers.append((extension, command, wrapper,
+ opts))
return wrapper
return dec