mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
9cb9648f71
The contrib/zsh_completion file itself says to name it _hg. With a name like `hg`, if the user has a line like `autoload ${^fpath}/*(N-.:t)` in their zshrc, it will create a shell function named `hg` that will hide the actual hg command and make hg unusable. Separately from that though, the underscore prefix makes it actually work. The zsh man page states: The convention for autoloaded functions used in completion is that they start with an underscore This does not seem to just be a "convention", though. With the ill-advised line removed from my zshrc and the file named `/usr/local/share/zsh/site-functions/hg` (without the underscore), these completions did not seem to get loaded and the ones from the zsh installation were loaded instead. If I renamed them to be `/usr/local/share/zsh/site-functions/_hg`, however, they were loaded. I manually tested the above statement by starting a new zsh instance with the file in `/usr/local/share/zsh/site-functions` with the following names: - As `hg`, `which _hg_labels` did not show anything - As `_hg`, `which _hg_labels` showed the expected function.
64 lines
2.6 KiB
Perl
64 lines
2.6 KiB
Perl
#require test-repo slow osx osxpackaging
|
|
|
|
$ . "$TESTDIR/helpers-testrepo.sh"
|
|
|
|
$ OUTPUTDIR="`pwd`"
|
|
$ export OUTPUTDIR
|
|
$ KEEPMPKG=yes
|
|
$ export KEEPMPKG
|
|
|
|
$ cd "$TESTDIR"/..
|
|
$ make osx > "$OUTPUTDIR/build.log" 2>&1
|
|
$ cd "$OUTPUTDIR"
|
|
$ ls -d *.pkg
|
|
Mercurial-*-macosx10.*.pkg (glob)
|
|
|
|
$ xar -xf Mercurial*.pkg
|
|
|
|
Gather list of all installed files:
|
|
$ lsbom mercurial.pkg/Bom > boms.txt
|
|
|
|
We've had problems with the filter logic in the past. Make sure no
|
|
.DS_Store files ended up in the final package:
|
|
$ grep DS_S boms.txt
|
|
[1]
|
|
|
|
Spot-check some randomly selected files:
|
|
$ grep bdiff boms.txt | cut -d ' ' -f 1,2,3
|
|
./Library/Python/2.7/site-packages/mercurial/cext/bdiff.so 100755 0/0
|
|
./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 100644 0/0
|
|
$ grep hg-completion.bash boms.txt | cut -d ' ' -f 1,2,3
|
|
./usr/local/hg/contrib/hg-completion.bash 100644 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/chg.1 100644 0/0
|
|
./usr/local/share/man/man1/hg.1 100644 0/0
|
|
./usr/local/share/man/man5 40755 0/0
|
|
./usr/local/share/man/man5/hgignore.5 100644 0/0
|
|
./usr/local/share/man/man5/hgrc.5 100644 0/0
|
|
$ grep bser boms.txt | cut -d ' ' -f 1,2,3
|
|
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/bser.so 100755 0/0
|
|
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.py 100644 0/0
|
|
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyc 100644 0/0
|
|
./Library/Python/2.7/site-packages/hgext/fsmonitor/pywatchman/pybser.pyo 100644 0/0
|
|
$ grep localrepo boms.txt | cut -d ' ' -f 1,2,3
|
|
./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
|
|
$ egrep 'bin/' boms.txt | cut -d ' ' -f 1,2,3
|
|
./usr/local/bin/chg 100755 0/0
|
|
./usr/local/bin/hg 100755 0/0
|
|
|
|
Make sure the built binary uses the system Python interpreter
|
|
$ bsdtar xf mercurial.pkg/Payload usr/local/bin
|
|
Use a glob to find this to avoid check-code whining about a fixed path.
|
|
$ head -n 1 usr/local/b?n/hg
|
|
#!/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
|
|
|
|
Note that we're not currently installing any /etc/mercurial stuff,
|
|
including merge-tool configurations.
|