Mercurial > dotfiles
view unixSoft/bin/hgimp @ 377:117e3c11d953
zprofile: introduce zprofile use
El Capitan (OS X 10.11) introduces a system-level /etc/zprofile which
uses a path_helper thing to mangle $PATH. Unfortunately, the way
path_helper works, it forces /usr/local/bin and /usr/bin to the
*start* of the PATH variable, which means that any PATH mutations I
want have to run after /etc/zprofile calls path_helper. As such, move
my path insertions into .zprofile{,-machine} rather than
.zshenv{,-machine} so that I can still ensure my path entries are at
the start of PATH rather than the end. This works because:
> Commands are then read from $ZDOTDIR/.zshenv. If the shell is a
> login shell, commands are read from /etc/zprofile and then
> $ZDOTDIR/.zprofile. Then, if the shell is interactive, commands
> are read from /etc/zshrc and then $ZDOTDIR/.zshrc. Finally, if the
> shell is a login shell, /etc/zlogin and $ZDOTDIR/.zlogin are read.
This means that non-login shells no longer pick up my custom PATH
entries, but as I only use OS X as a desktop OS that seems like a
workable tradeoff for now.
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sun, 31 Jan 2016 20:46:29 -0500 |
parents | 2ac43cd7bbf7 |
children | 24d75bc4a3a1 |
line wrap: on
line source
#!/usr/bin/env python import argparse import os import subprocess import sys _MAP = { 'hg': '~/Programming/hg/crew', 'hgsubversion': '~/Programming/hg/hgsubversion', 'hg-git': '~/Programming/hg/hg-git', 'topics': '~/Programming/hg/topic', } def main(argv): p = argparse.ArgumentParser('import patches') p.add_argument('repo', type=str, nargs=1, help='repo name to apply patches to') args = p.parse_args(argv[1:]) name, = args.repo if name in _MAP: repo = _MAP[name] else: c = [] for n in _MAP: if n.startswith(name): c.append(n) if not c: print 'abort: no repo named %s' % name sys.exit(1) elif len(c) != 1: print 'abort: ambiguous repo name %s matches %s' % ( name, ', '.join(c)) sys.exit(1) repo = _MAP[c[0]] hg = subprocess.Popen(['hg', '-R', repo, 'import', '--obsolete', '-'], stdin=subprocess.PIPE) hg.stdin.write(sys.stdin.read()) hg.stdin.close() hg.wait() sys.exit(hg.returncode) if __name__ == '__main__': main(argv=sys.argv)