Mercurial > hg > mercurial-crew-with-dirclash
comparison mercurial/util.py @ 4684:849f011dbf79
Remember path to 'hg' executable and pass to external tools and hooks as $HG.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Sat, 23 Jun 2007 20:21:10 +0200 |
parents | d8442fc0da8d |
children | 01f9ee4de1ad |
comparison
equal
deleted
inserted
replaced
4683:8c3d449ecc63 | 4684:849f011dbf79 |
---|---|
535 else: | 535 else: |
536 match = lambda fn: incmatch(fn) and not excmatch(fn) and patmatch(fn) | 536 match = lambda fn: incmatch(fn) and not excmatch(fn) and patmatch(fn) |
537 | 537 |
538 return (roots, match, (inc or exc or anypats) and True) | 538 return (roots, match, (inc or exc or anypats) and True) |
539 | 539 |
540 _hgexecutable = None | |
541 | |
542 def set_hgexecutable(path): | |
543 """remember location of the 'hg' executable if easily possible | |
544 | |
545 path might be None or empty if hg was loaded as a module, | |
546 fall back to 'hg' in this case. | |
547 """ | |
548 global _hgexecutable | |
549 _hgexecutable = path and os.path.abspath(path) or 'hg' | |
550 | |
540 def system(cmd, environ={}, cwd=None, onerr=None, errprefix=None): | 551 def system(cmd, environ={}, cwd=None, onerr=None, errprefix=None): |
541 '''enhanced shell command execution. | 552 '''enhanced shell command execution. |
542 run with environment maybe modified, maybe in different dir. | 553 run with environment maybe modified, maybe in different dir. |
543 | 554 |
544 if command fails and onerr is None, return status. if ui object, | 555 if command fails and onerr is None, return status. if ui object, |
560 if os.name == 'nt': | 571 if os.name == 'nt': |
561 cmd = '"%s"' % cmd | 572 cmd = '"%s"' % cmd |
562 try: | 573 try: |
563 for k, v in environ.iteritems(): | 574 for k, v in environ.iteritems(): |
564 os.environ[k] = py2shell(v) | 575 os.environ[k] = py2shell(v) |
576 if 'HG' not in os.environ: | |
577 os.environ['HG'] = _hgexecutable | |
565 if cwd is not None and oldcwd != cwd: | 578 if cwd is not None and oldcwd != cwd: |
566 os.chdir(cwd) | 579 os.chdir(cwd) |
567 rc = os.system(cmd) | 580 rc = os.system(cmd) |
568 if rc and onerr: | 581 if rc and onerr: |
569 errmsg = '%s %s' % (os.path.basename(origcmd.split(None, 1)[0]), | 582 errmsg = '%s %s' % (os.path.basename(origcmd.split(None, 1)[0]), |