2021-07-29 00:37:35 -07:00
|
|
|
#!/usr/bin/env sh
|
|
|
|
# YES_ZSH
|
2021-07-29 05:44:12 -07:00
|
|
|
# YES_BASH
|
|
|
|
# YES_DASH
|
2021-09-23 06:48:05 -07:00
|
|
|
# YES_ASH
|
2021-07-29 00:37:35 -07:00
|
|
|
|
2021-09-30 08:29:28 -07:00
|
|
|
has() ( ### @- print the result of `which` if the program is found, else simply return 1.
|
2021-08-01 09:45:19 -07:00
|
|
|
### ```
|
2021-09-30 08:29:28 -07:00
|
|
|
### export SOLVER="$(has kissat || has picosat || has cadical || has minisat)"
|
2021-08-01 09:45:19 -07:00
|
|
|
### ```
|
2021-09-30 08:29:28 -07:00
|
|
|
if [ "${1:--}" = "${1#*[!A-Za-z_]}" ]; then # valid alias name?
|
|
|
|
# forcefully unalias it (regardless of if it even was an alias)
|
|
|
|
alias "$1"=
|
|
|
|
unalias "$1"
|
|
|
|
# forcefully unset it (regardless of if it even was a function)
|
|
|
|
eval "$1() (:)"
|
|
|
|
unset -f "$1"
|
2021-07-29 00:37:35 -07:00
|
|
|
fi
|
2021-09-30 08:29:28 -07:00
|
|
|
which -- "$1" >/dev/null 2>&1 && which -- "$1"
|
|
|
|
) # this uses parentheses instead of braces so that the function is always run
|
|
|
|
# in a subshell. otherwise, the user's aliases and functions may be overwritten.
|
2021-07-29 00:37:35 -07:00
|
|
|
|
2021-08-02 13:48:46 -07:00
|
|
|
[ -n "${preload+-}" ] || has "$@"
|