--- a/hgext/alias.py Sat May 30 19:37:01 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-# Copyright (C) 2007 Brendan Cully <brendan@kublai.com>
-# This file is published under the GNU GPL.
-
-'''allow user-defined command aliases
-
-To use, create entries in your hgrc of the form
-
-[alias]
-mycmd = cmd --args
-'''
-
-from mercurial.i18n import _
-from mercurial import commands, cmdutil, error
-
-cmdtable = {}
-
-class RecursiveCommand(Exception): pass
-
-class lazycommand(object):
- '''defer command lookup until needed, so that extensions loaded
- after alias can be aliased'''
- def __init__(self, ui, name, target):
- self._ui = ui
- self._name = name
- self._target = target
- self._cmd = None
-
- def __len__(self):
- self._resolve()
- return len(self._cmd)
-
- def __getitem__(self, key):
- self._resolve()
- return self._cmd[key]
-
- def __iter__(self):
- self._resolve()
- return self._cmd.__iter__()
-
- def _resolve(self):
- if self._cmd is not None:
- return
-
- try:
- self._cmd = cmdutil.findcmd(self._target, commands.table, False)[1]
- if self._cmd == self:
- raise RecursiveCommand()
- if self._target in commands.norepo.split(' '):
- commands.norepo += ' %s' % self._name
- return
- except error.UnknownCommand:
- msg = _('*** [alias] %s: command %s is unknown') % \
- (self._name, self._target)
- except error.AmbiguousCommand:
- msg = _('*** [alias] %s: command %s is ambiguous') % \
- (self._name, self._target)
- except RecursiveCommand:
- msg = _('*** [alias] %s: circular dependency on %s') % \
- (self._name, self._target)
- def nocmd(*args, **opts):
- self._ui.warn(msg + '\n')
- return 1
- nocmd.__doc__ = msg
- self._cmd = (nocmd, [], '')
- commands.norepo += ' %s' % self._name
-
-def uisetup(ui):
- for cmd, target in ui.configitems('alias'):
- if not target:
- ui.warn(_('*** [alias] %s: no definition\n') % cmd)
- continue
- args = target.split(' ', 1)
- tcmd = args.pop(0)
- if args:
- args = args[0]
- defaults = ui.config('defaults', cmd)
- if defaults:
- args = ' '.join((args, defaults))
- ui.setconfig('defaults', cmd, args)
- cmdtable[cmd] = lazycommand(ui, cmd, tcmd)