RetroArch/qb/qb.init.sh

44 lines
864 B
Bash
Raw Normal View History

2019-01-25 15:00:28 +00:00
# Only add standalone functions to this file which are easy to source anywhere.
# die:
# Prints a warning or an exit error.
# $1 = exit code, use : to not exit when printing warnings
# $@ = exit or warning messages
die()
{ ret="$1"
shift 1
printf %s\\n "$@" >&2
case "$ret" in
: ) return 0 ;;
* ) exit "$ret" ;;
esac
}
# exists:
# Finds executable files in the $PATH
# $@ = files
exists()
{ v=1
while [ $# -gt 0 ]; do
arg="$1"
shift 1
case "$arg" in ''|*/) continue ;; esac
x="${arg##*/}"
z="${arg%/*}"
[ ! -f "$z/$x" ] || [ ! -x "$z/$x" ] && [ "$z/$x" = "$arg" ] &&
continue
[ "$x" = "$z" ] && [ -x "$z/$x" ] && [ ! -f "$arg" ] && z=
p=":$z:$PATH"
while [ "$p" != "${p#*:}" ]; do
p="${p#*:}"
d="${p%%:*}"
if [ -f "$d/$x" ] && [ -x "$d/$x" ]; then
printf %s\\n "$d/$x"
v=0
break
fi
done
done
return $v
}