hgext/alias.py
changeset 8655 21688b8a594b
parent 8654 f6cc3638f468
child 8656 284fda4cd093
--- 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)