hitchhiker.plugin.zsh 1.0 KB

12345678910111213141516171819202122232425262728
  1. # Handle $0 according to the standard:
  2. # https://zdharma-continuum.github.io/Zsh-100-Commits-Club/Zsh-Plugin-Standard.html
  3. 0="${${ZERO:-${0:#$ZSH_ARGZERO}}:-${(%):-%N}}"
  4. 0="${${(M)0:#/*}:-$PWD/$0}"
  5. HITCHHIKER_DIR="${0:h}/fortunes"
  6. # Aliases
  7. alias hitchhiker="fortune -a $HITCHHIKER_DIR"
  8. alias hitchhiker_cow="hitchhiker | cowthink"
  9. () {
  10. # Don't generate hitchhiker.dat if it exists and is up-to-date
  11. if [[ -f "$HITCHHIKER_DIR/hitchhiker.dat" ]] && ! [[ "$HITCHHIKER_DIR/hitchhiker.dat" -ot "$HITCHHIKER_DIR/hitchhiker" ]]; then
  12. return
  13. fi
  14. # If strfile is not found: some systems install strfile in /usr/sbin but it's not in $PATH
  15. if ! command -v strfile &>/dev/null && ! [[ -f /usr/sbin/strfile ]]; then
  16. echo "[oh-my-zsh] hitchhiker depends on strfile, which is not installed" >&2
  17. echo "[oh-my-zsh] strfile is often provided as part of the 'fortune' package" >&2
  18. return
  19. fi
  20. "${commands[strfile]:-/usr/sbin/strfile}" "$HITCHHIKER_DIR/hitchhiker" "$HITCHHIKER_DIR/hitchhiker.dat" >/dev/null
  21. }
  22. unset HITCHHIKER_DIR