|
@@ -1,28 +1,24 @@
|
|
|
-# chucknorris: Chuck Norris fortunes
|
|
|
+() {
|
|
|
+ # %x: name of file containing code being executed
|
|
|
+ local fortunes_dir="${${(%):-%x}:h}/fortunes"
|
|
|
|
|
|
-# Automatically generate or update Chuck's compiled fortune data file
|
|
|
-# $0 must be used outside a local function. This variable name is unlikly to collide.
|
|
|
-CHUCKNORRIS_PLUGIN_DIR=${0:h}
|
|
|
+ # Aliases
|
|
|
+ alias chuck="fortune -a $fortunes_dir"
|
|
|
+ alias chuck_cow="chuck | cowthink"
|
|
|
|
|
|
-() {
|
|
|
-local DIR=$CHUCKNORRIS_PLUGIN_DIR/fortunes
|
|
|
-if [[ ! -f $DIR/chucknorris.dat ]] || [[ $DIR/chucknorris.dat -ot $DIR/chucknorris ]]; then
|
|
|
- # 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
|
|
|
+ # Automatically generate or update Chuck's compiled fortune data file
|
|
|
+ if [[ "$fortunes_dir/chucknorris" -ot "$fortunes_dir/chucknorris.dat" ]]; then
|
|
|
+ return
|
|
|
fi
|
|
|
- if which $strfile &> /dev/null; then
|
|
|
- $strfile $DIR/chucknorris $DIR/chucknorris.dat >/dev/null
|
|
|
- else
|
|
|
+
|
|
|
+ # For some reason, Cygwin puts strfile in /usr/sbin, which is not on the path by default
|
|
|
+ local strfile="${commands[strfile]:-/usr/sbin/strfile}"
|
|
|
+ if [[ ! -x "$strfile" ]]; then
|
|
|
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
|
|
|
+ return
|
|
|
fi
|
|
|
-fi
|
|
|
|
|
|
-# Aliases
|
|
|
-alias chuck="fortune -a $DIR"
|
|
|
-alias chuck_cow="chuck | cowthink"
|
|
|
+ # Generate the compiled fortune data file
|
|
|
+ $strfile "$fortunes_dir/chucknorris" "$fortunes_dir/chucknorris.dat" >/dev/null
|
|
|
}
|
|
|
-
|
|
|
-unset CHUCKNORRIS_PLUGIN_DIR
|