# HG changeset patch # User Augie Fackler # Date 1486412372 18000 # Node ID 408dcf7475a733d1af7d0b8c89db4a903b300cd7 # Parent b4cd912d7704cd976e1bee3a3c927e0e578ec88f osx: install bash and zsh completions by default The zsh location appears to be on the default $fpath for zsh. bash, on the other hand, appears to have no default location for completion scripts, so we follow the lead of Apple's Git distribution and select a semi-arbitrary place in /usr/local for the file. diff -r b4cd912d7704 -r 408dcf7475a7 Makefile --- a/Makefile Thu Mar 02 10:12:40 2017 -0800 +++ b/Makefile Mon Feb 06 15:19:32 2017 -0500 @@ -163,6 +163,16 @@ --root=build/mercurial/ --prefix=/usr/local/ \ --install-lib=/Library/Python/2.7/site-packages/ make -C doc all install DESTDIR="$(PWD)/build/mercurial/" + # install zsh completions - this location appears to be + # searched by default as of macOS Sierra. + mkdir -p build/mercurial/usr/local/share/zsh/site-functions + cp contrib/zsh_completion build/mercurial/usr/local/share/zsh/site-functions/hg + # install bash completions - there doesn't appear to be a + # place that's searched by default for bash, so we'll follow + # the lead of Apple's git install and just put it in a + # location of our own. + mkdir -p build/mercurial/usr/local/hg/contrib + cp contrib/bash_completion build/mercurial/usr/local/hg/contrib/hg-completion.bash mkdir -p $${OUTPUTDIR:-dist} HGVER=$$((cat build/mercurial/Library/Python/2.7/site-packages/mercurial/__version__.py; echo 'print(version)') | python) && \ OSXVER=$$(sw_vers -productVersion | cut -d. -f1,2) && \ diff -r b4cd912d7704 -r 408dcf7475a7 tests/test-mac-packages.t --- a/tests/test-mac-packages.t Thu Mar 02 10:12:40 2017 -0800 +++ b/tests/test-mac-packages.t Mon Feb 06 15:19:32 2017 -0500 @@ -25,6 +25,10 @@ ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.py 100644 0/0 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyc 100644 0/0 ./Library/Python/2.7/site-packages/mercurial/pure/bdiff.pyo 100644 0/0 + $ grep zsh/site-functions/hg boms.txt | cut -d ' ' -f 1,2,3 + ./usr/local/share/zsh/site-functions/hg 100640 0/0 + $ grep hg-completion.bash boms.txt | cut -d ' ' -f 1,2,3 + ./usr/local/hg/contrib/hg-completion.bash 100640 0/0 $ egrep 'man[15]' boms.txt | cut -d ' ' -f 1,2,3 ./usr/local/share/man/man1 40755 0/0 ./usr/local/share/man/man1/hg.1 100644 0/0 @@ -40,7 +44,7 @@ ./Library/Python/2.7/site-packages/mercurial/localrepo.py 100644 0/0 ./Library/Python/2.7/site-packages/mercurial/localrepo.pyc 100644 0/0 ./Library/Python/2.7/site-packages/mercurial/localrepo.pyo 100644 0/0 - $ grep '/hg ' boms.txt | cut -d ' ' -f 1,2,3 + $ grep 'bin/hg ' boms.txt | cut -d ' ' -f 1,2,3 ./usr/local/bin/hg 100755 0/0 Make sure the built binary uses the system Python interpreter