Skip to content

Commit

Permalink
Skip installing .revision-hash if not running make install from a g…
Browse files Browse the repository at this point in the history
…it checkout

Check --show-prefix rather than --is-inside-work-tree in case we're
inside some other git repository (e.g. a ports tree).
  • Loading branch information
phy1729 committed Apr 10, 2020
1 parent 415e762 commit 42115e3
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 11 deletions.
8 changes: 3 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,9 @@ install: all
cp .version zsh-syntax-highlighting.zsh $(SHARE_DIR)
cp COPYING.md README.md changelog.md $(DOC_DIR)
sed -e '1s/ .*//' -e '/^\[build-status-[a-z]*\]: /d' < README.md > $(DOC_DIR)/README.md
if [ x"true" = x"`git rev-parse --is-inside-work-tree 2>/dev/null`" ]; then \
git rev-parse HEAD; \
else \
cat .revision-hash; \
fi > $(SHARE_DIR)/.revision-hash
if prefix=`git rev-parse --show-prefix 2>/dev/null` && [ x"$$prefix" = x ]; then \
git rev-parse HEAD > $(SHARE_DIR)/.revision-hash; \
fi
:
# The [ -e ] check below is to because sh evaluates this with (the moral
# equivalent of) NONOMATCH in effect, and highlighters/*.zsh has no matches.
Expand Down
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@

- Recognize `env` as a precommand (e.g., `env FOO=bar ls`)

- Skip installing .revision-hash if not running `make install` from a git checkout.
[#721]

# Changes in version 0.7.1

- Remove out-of-date information from the 0.7.0 changelog.
Expand Down
14 changes: 8 additions & 6 deletions zsh-syntax-highlighting.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,14 @@ builtin unalias -m '[^+]*'
if true; then
# $0 is reliable
typeset -g ZSH_HIGHLIGHT_VERSION=$(<"${0:A:h}"/.version)
typeset -g ZSH_HIGHLIGHT_REVISION=$(<"${0:A:h}"/.revision-hash)
if [[ $ZSH_HIGHLIGHT_REVISION == \$Format:* ]]; then
# When running from a source tree without 'make install', $ZSH_HIGHLIGHT_REVISION
# would be set to '$Format:%H$' literally. That's an invalid value, and obtaining
# the valid value (via `git rev-parse HEAD`, as Makefile does) might be costly, so:
ZSH_HIGHLIGHT_REVISION=HEAD
if [[ -f "${0:A:h}"/.revision-hash ]]; then
typeset -g ZSH_HIGHLIGHT_REVISION=$(<"${0:A:h}"/.revision-hash)
if [[ $ZSH_HIGHLIGHT_REVISION == \$Format:* ]]; then
# When running from a source tree without 'make install', $ZSH_HIGHLIGHT_REVISION
# would be set to '$Format:%H$' literally. That's an invalid value, and obtaining
# the valid value (via `git rev-parse HEAD`, as Makefile does) might be costly, so:
ZSH_HIGHLIGHT_REVISION=HEAD
fi
fi
fi

Expand Down

0 comments on commit 42115e3

Please sign in to comment.