equal
deleted
inserted
replaced
12 import errno |
12 import errno |
13 import getopt |
13 import getopt |
14 import os |
14 import os |
15 import pdb |
15 import pdb |
16 import re |
16 import re |
17 import shlex |
|
18 import signal |
17 import signal |
19 import sys |
18 import sys |
20 import time |
19 import time |
21 import traceback |
20 import traceback |
22 |
21 |
277 return givenargs[num] |
276 return givenargs[num] |
278 raise error.Abort(_('too few arguments for command alias')) |
277 raise error.Abort(_('too few arguments for command alias')) |
279 cmd = re.sub(r'\$(\d+|\$)', replacer, cmd) |
278 cmd = re.sub(r'\$(\d+|\$)', replacer, cmd) |
280 givenargs = [x for i, x in enumerate(givenargs) |
279 givenargs = [x for i, x in enumerate(givenargs) |
281 if i not in nums] |
280 if i not in nums] |
282 args = shlex.split(cmd) |
281 args = pycompat.shlexsplit(cmd) |
283 return args + givenargs |
282 return args + givenargs |
284 |
283 |
285 def aliasinterpolate(name, args, cmd): |
284 def aliasinterpolate(name, args, cmd): |
286 '''interpolate args into cmd for shell aliases |
285 '''interpolate args into cmd for shell aliases |
287 |
286 |
349 return ui.system(cmd, environ=env) |
348 return ui.system(cmd, environ=env) |
350 self.fn = fn |
349 self.fn = fn |
351 return |
350 return |
352 |
351 |
353 try: |
352 try: |
354 args = shlex.split(self.definition) |
353 args = pycompat.shlexsplit(self.definition) |
355 except ValueError as inst: |
354 except ValueError as inst: |
356 self.badalias = (_("error in definition for alias '%s': %s") |
355 self.badalias = (_("error in definition for alias '%s': %s") |
357 % (self.name, inst)) |
356 % (self.name, inst)) |
358 return |
357 return |
359 self.cmdname = cmd = args.pop(0) |
358 self.cmdname = cmd = args.pop(0) |
459 ui.configbool("ui", "strict")) |
458 ui.configbool("ui", "strict")) |
460 cmd = aliases[0] |
459 cmd = aliases[0] |
461 args = aliasargs(entry[0], args) |
460 args = aliasargs(entry[0], args) |
462 defaults = ui.config("defaults", cmd) |
461 defaults = ui.config("defaults", cmd) |
463 if defaults: |
462 if defaults: |
464 args = map(util.expandpath, shlex.split(defaults)) + args |
463 args = map(util.expandpath, pycompat.shlexsplit(defaults)) + args |
465 c = list(entry[1]) |
464 c = list(entry[1]) |
466 else: |
465 else: |
467 cmd = None |
466 cmd = None |
468 c = [] |
467 c = [] |
469 |
468 |