b05ef1034fffd7b0c29f1558a8a357ccce7ae74b

Author
Robby Russell <robby@planetargon.com>
Committer
Robby Russell <robby@planetargon.com>
Date

Message

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
29 
30-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