diff options
author | Marc Cornellà <hello@mcornella.com> | 2021-10-05 16:45:49 +0200 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2021-10-05 16:45:49 +0200 |
commit | 53c9661b003b91e8af356c3ecbb95a025ffcd412 (patch) | |
tree | 62adfa68b31ddff5d11367fc71cc9ea777523cca /plugins/chucknorris | |
parent | e5b9b80008a2fd71b441ef39fe620ed47dad82e5 (diff) | |
download | zsh-53c9661b003b91e8af356c3ecbb95a025ffcd412.tar.gz zsh-53c9661b003b91e8af356c3ecbb95a025ffcd412.tar.bz2 zsh-53c9661b003b91e8af356c3ecbb95a025ffcd412.zip |
refactor(chucknorris): refresh plugin code
Diffstat (limited to 'plugins/chucknorris')
-rw-r--r-- | plugins/chucknorris/README.md | 4 | ||||
-rw-r--r-- | plugins/chucknorris/chucknorris.plugin.zsh | 36 |
2 files changed, 17 insertions, 23 deletions
diff --git a/plugins/chucknorris/README.md b/plugins/chucknorris/README.md index 35f989180..b51875de9 100644 --- a/plugins/chucknorris/README.md +++ b/plugins/chucknorris/README.md @@ -1,8 +1,6 @@ # chucknorris -Chuck Norris fortunes plugin for oh-my-zsh. Perfectly suitable as MOTD. - -**Maintainers**: [apjanke](https://github.com/apjanke) [maff](https://github.com/maff) +Chuck Norris fortunes plugin for Oh My Zsh. Perfectly suitable as MOTD. To use it add `chucknorris` to the plugins array in you zshrc file. 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 |