Merge pull request #4121 from apjanke/chucknorris-check-for-fortune
chucknorris: check for fortune/strfile dependency
Diff
1diff --git a/plugins/chucknorris/chucknorris.plugin.zsh b/plugins/chucknorris/chucknorris.plugin.zsh
2index 09636463350cf2b7a7e5b351d3a56c7992e9a574..1dbb04ef0d08928841a906d4f112ffc6eeb9b38c 100644
3--- a/plugins/chucknorris/chucknorris.plugin.zsh
4+++ b/plugins/chucknorris/chucknorris.plugin.zsh
5@@ -1,6 +1,28 @@
6-if [ ! -f $ZSH/plugins/chucknorris/fortunes/chucknorris.dat ]; then
7- strfile $ZSH/plugins/chucknorris/fortunes/chucknorris $ZSH/plugins/chucknorris/fortunes/chucknorris.dat
8+# chucknorris: Chuck Norris fortunes
9+
10+# Automatically generate or update Chuck's compiled fortune data file
11+# $0 must be used outside a local function. This variable name is unlikly to collide.
12+CHUCKNORRIS_PLUGIN_DIR=${0:h}
13+
14+() {
15+local DIR=$CHUCKNORRIS_PLUGIN_DIR/fortunes
16+if [[ ! -f $DIR/chucknorris.dat ]] || [[ $DIR/chucknorris.dat -ot $DIR/chucknorris ]]; then
17+ # For some reason, Cygwin puts strfile in /usr/sbin, which is not on the path by default
18+ local strfile=strfile
19+ if ! which strfile &>/dev/null && [[ -f /usr/sbin/strfile ]]; then
20+ strfile=/usr/sbin/strfile
21+ fi
22+ if which $strfile &> /dev/null; then
23+ $strfile $DIR/chucknorris $DIR/chucknorris.dat >/dev/null
24+ else
25+ echo "[oh-my-zsh] chucknorris depends on strfile, which is not installed" >&2
26+ echo "[oh-my-zsh] strfile is often provided as part of the 'fortune' package" >&2
27+ fi
28 fi
2930-alias chuck="fortune -a $ZSH/plugins/chucknorris/fortunes"
31+# Aliases
32+alias chuck="fortune -a $DIR"
33 alias chuck_cow="chuck | cowthink"
34+}
35+
36+unset CHUCKNORRIS_PLUGIN_DIR