From 53c9661b003b91e8af356c3ecbb95a025ffcd412 Mon Sep 17 00:00:00 2001 From: Marc Cornellà Date: Tue, 5 Oct 2021 16:45:49 +0200 Subject: refactor(chucknorris): refresh plugin code --- plugins/chucknorris/chucknorris.plugin.zsh | 36 +++++++++++++----------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'plugins/chucknorris/chucknorris.plugin.zsh') diff --git a/plugins/chucknorris/chucknorris.plugin.zsh b/plugins/chucknorris/chucknorris.plugin.zsh index 1dbb04ef0..b90abe320 100644 --- a/plugins/chucknorris/chucknorris.plugin.zsh +++ b/plugins/chucknorris/chucknorris.plugin.zsh @@ -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 -- cgit v1.2.3-70-g09d2