summaryrefslogtreecommitdiff
path: root/plugins/hitchhiker/hitchhiker.plugin.zsh
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/hitchhiker/hitchhiker.plugin.zsh')
-rw-r--r--plugins/hitchhiker/hitchhiker.plugin.zsh23
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/hitchhiker/hitchhiker.plugin.zsh b/plugins/hitchhiker/hitchhiker.plugin.zsh
new file mode 100644
index 000000000..aeafaf01e
--- /dev/null
+++ b/plugins/hitchhiker/hitchhiker.plugin.zsh
@@ -0,0 +1,23 @@
+HITCHHIKER_DIR="${0:h}/fortunes"
+
+# Aliases
+alias hitchhiker="fortune -a $HITCHHIKER_DIR"
+alias hitchhiker_cow="hitchhiker | cowthink"
+
+() {
+ # Don't generate hitchhiker.dat if it exists and is up-to-date
+ if [[ -f "$HITCHHIKER_DIR/hitchhiker.dat" ]] && ! [[ "$HITCHHIKER_DIR/hitchhiker.dat" -ot "$HITCHHIKER_DIR/hitchhiker" ]]; then
+ return
+ fi
+
+ # If strfile is not found: some systems install strfile in /usr/sbin but it's not in $PATH
+ if ! command -v strfile &>/dev/null && ! [[ -f /usr/sbin/strfile ]]; then
+ echo "[oh-my-zsh] hitchhiker 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
+
+ "${commands[strfile]:-/usr/sbin/strfile}" "$HITCHHIKER_DIR/hitchhiker" "$HITCHHIKER_DIR/hitchhiker.dat" >/dev/null
+}
+
+unset HITCHHIKER_DIR