10-util.sh (980B)
1 have() { 2 if [ $# -ne 1 ]; then 3 echo "Usage: have COMMAND" >&2 4 return 1 5 fi 6 7 command -v "$1" >/dev/null 2>&1 8 } 9 10 echo_lines() { 11 [ $# -ge 1 ] && printf "%s\n" "$@" 12 } 13 14 is_interactive() { 15 if [ $# -ne 0 ]; then 16 echo "Usage: is_interactive" >&2 17 return 1 18 fi 19 20 case $- in 21 *i*) true ;; 22 *) false ;; 23 esac 24 } 25 26 append_path() { 27 for p in "$@"; do 28 case ":${PATH:-}:" in 29 *:"$p":*) ;; 30 *) PATH="${PATH:+$PATH:}$p" 31 esac 32 done 33 unset p 34 } 35 36 prepend_path() { 37 for p in "$@"; do 38 case ":${PATH:-}:" in 39 *:"$p":*) ;; 40 *) PATH="$p${PATH:+:$PATH}" 41 esac 42 done 43 unset p 44 } 45 46 append_manpath() { 47 for p in "$@"; do 48 case ":${MANPATH:-}:" in 49 *:"$p":*) ;; 50 *) MANPATH="${MANPATH:+$MANPATH:}$p" 51 esac 52 done 53 unset p 54 } 55 56 prepend_manpath() { 57 for p in "$@"; do 58 case ":${MANPATH:-}:" in 59 *:"$p":*) ;; 60 *) MANPATH="$p${MANPATH:+:$MANPATH}" 61 esac 62 done 63 unset p 64 } 65 66 reload_shinit() { 67 unset SHINIT_LOADED 68 sourcefile "$HOME"/.shinit 69 } 70 71 reload_profile() { 72 sourcefile "$HOME"/.profile 73 }