summaryrefslogtreecommitdiff
path: root/plugins/chucknorris
diff options
context:
space:
mode:
authorAndrew Janke <andrew@apjanke.net>2015-07-02 20:27:48 -0400
committerAndrew Janke <andrew@apjanke.net>2015-07-02 20:37:28 -0400
commita2e01e9a87c0d120482cc7bbe21ccab21bf71fb1 (patch)
treedd3ddd64ed88a0238ecff4432b31f27962b02222 /plugins/chucknorris
parentcb0718c14785de7cf808ef4e2d7ddf5ab3eda8e0 (diff)
downloadzsh-a2e01e9a87c0d120482cc7bbe21ccab21bf71fb1.tar.gz
zsh-a2e01e9a87c0d120482cc7bbe21ccab21bf71fb1.tar.bz2
zsh-a2e01e9a87c0d120482cc7bbe21ccab21bf71fb1.zip
chucknorris: check for strfile dependency
Gives a better error message than "command not found: strfile", because it's not obvious to many users that strfile is part of fortune. Also handles the weird /usr/sbin install location for strfile on Cygwin.
Diffstat (limited to 'plugins/chucknorris')
-rw-r--r--plugins/chucknorris/chucknorris.plugin.zsh23
1 files changed, 20 insertions, 3 deletions
diff --git a/plugins/chucknorris/chucknorris.plugin.zsh b/plugins/chucknorris/chucknorris.plugin.zsh
index 1cdc945d1..1dbb04ef0 100644
--- a/plugins/chucknorris/chucknorris.plugin.zsh
+++ b/plugins/chucknorris/chucknorris.plugin.zsh
@@ -1,11 +1,28 @@
+# chucknorris: Chuck Norris fortunes
+
# Automatically generate or update Chuck's compiled fortune data file
-DIR=${0:h}/fortunes
+# $0 must be used outside a local function. This variable name is unlikly to collide.
+CHUCKNORRIS_PLUGIN_DIR=${0:h}
+
+() {
+local DIR=$CHUCKNORRIS_PLUGIN_DIR/fortunes
if [[ ! -f $DIR/chucknorris.dat ]] || [[ $DIR/chucknorris.dat -ot $DIR/chucknorris ]]; then
- strfile $DIR/chucknorris $DIR/chucknorris.dat
+ # For some reason, Cygwin puts strfile in /usr/sbin, which is not on the path by default
+ local strfile=strfile
+ if ! which strfile &>/dev/null && [[ -f /usr/sbin/strfile ]]; then
+ strfile=/usr/sbin/strfile
+ fi
+ if which $strfile &> /dev/null; then
+ $strfile $DIR/chucknorris $DIR/chucknorris.dat >/dev/null
+ else
+ echo "[oh-my-zsh] chucknorris depends on strfile, which is not installed" >&2
+ echo "[oh-my-zsh] strfile is often provided as part of the 'fortune' package" >&2
+ fi
fi
# Aliases
alias chuck="fortune -a $DIR"
alias chuck_cow="chuck | cowthink"
+}
-unset DIR \ No newline at end of file
+unset CHUCKNORRIS_PLUGIN_DIR