This removes the availability of ‘which’ and improves performance when
‘which’ is an external program.
This patch also silently adds options to make the function more quiet
than its default behaviour.
# }}}
# {{{ check for availability of program(s)
# }}}
# {{{ check for availability of program(s)
+# usage example:
+# check4progs [-s,-q,--quiet,--silent] arg [arg .... argn]
+#
+# with option given either of:
+# -s,-q,--quiet,--silent
+#
+# check for available progs but produce no output
+ [ -n "${ZSH_VERSION}" ] && emulate -L sh
- local ARG=''
- while [ ${#} -gt 0 ]
+ local oldifs="${IFS}"
+ local ARG d found
+ local VERBOSE=1
+
+ case ${1} in
+ -q | -s | --quiet | --silent)
+ VERBOSE=0
+ shift 1
+ ;;
+
+ *)
+ ;;
+ esac
+
+ while [ $# -gt 0 ]
+ found=0
+ IFS=:
+ for d in $PATH
+ do
+ if [ -x "${d}/${ARG}" ]
+ then
+ found=1
+ break
+ fi
+ done
+ IFS="${oldifs}"
+
- if ! \which "${ARG}" >/dev/null 2>&1
- printf "%s: binary not found\n" "${ARG}" >&2
+ if [ ${VERBOSE} -eq 1 ]
+ then
+ printf "%s: binary not found\n" "${ARG}" >&2
+ fi
done
# return non zero, if at least one prog is missing!
done
# return non zero, if at least one prog is missing!