--- a/hgkw/keyword.py Wed Jan 23 11:36:37 2008 +0100
+++ b/hgkw/keyword.py Wed Jan 23 12:31:41 2008 +0100
@@ -88,6 +88,14 @@
commands.optionalrepo += ' kwdemo'
+# handle for external callers
+externalcall = None, None, {}
+
+# hook for external callers
+def externalcmdhook(hgcmd, *args, **opts):
+ global externalcall
+ externalcall = hgcmd.__name__, args, opts
+
# hg commands that trigger expansion only when writing to working dir,
# not when reading filelog, and unexpand when reading from working dir
restricted = ('diff1', 'record',
@@ -416,7 +424,12 @@
'log', 'outgoing', 'push', 'remove', 'rename',
'rollback', 'tip',
'convert')
- hgcmd, func, args, opts, cmdopts = dispatch._parse(ui, sys.argv[1:])
+ try:
+ hgcmd, func, args, opts, cmdopts = dispatch._parse(ui, sys.argv[1:])
+ except cmdutil.UnknownCommand:
+ hgcmd, args, cmdopts = externalcall
+ if hgcmd is None: # no command was specified from outside
+ raise
if hgcmd in nokwcommands:
return