mirror of
https://github.com/libretro/RetroArch
synced 2024-12-29 12:31:05 +00:00
73 lines
1.2 KiB
Bash
73 lines
1.2 KiB
Bash
# 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
|
|
case "$ret" in
|
|
: ) printf %s\\n "$@" >&2; return 0 ;;
|
|
0 ) printf %s\\n "$@" ;;
|
|
* ) printf %s\\n "$@" >&2 ;;
|
|
esac
|
|
exit "$ret"
|
|
}
|
|
|
|
# exists:
|
|
# Finds executable files in the $PATH
|
|
# $@ = files
|
|
exists()
|
|
{ v=1
|
|
while [ $# -gt 0 ]; do
|
|
arg="$1"
|
|
shift 1
|
|
case "$arg" in
|
|
''|*/ )
|
|
:
|
|
;;
|
|
*/* )
|
|
if [ -f "$arg" ] && [ -x "$arg" ]; then
|
|
printf %s\\n "$arg"
|
|
v=0
|
|
fi
|
|
;;
|
|
* )
|
|
p=":$PATH"
|
|
while [ "$p" != "${p#*:}" ]; do
|
|
p="${p#*:}"
|
|
d="${p%%:*}/$arg"
|
|
if [ -f "$d" ] && [ -x "$d" ]; then
|
|
printf %s\\n "$d"
|
|
v=0
|
|
break
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
done
|
|
return $v
|
|
}
|
|
|
|
# match:
|
|
# Compares a variable against a list of variables
|
|
# $1 = variable
|
|
# $@ = list of variables
|
|
match()
|
|
{
|
|
var="$1"
|
|
shift
|
|
for string do
|
|
case "$string" in
|
|
"$var" ) return 0 ;;
|
|
esac
|
|
done
|
|
return 1
|
|
}
|
|
|
|
# next:
|
|
# Check if the next argument starts with a dash
|
|
# $1 = arg
|
|
next () { case "$1" in -*) return 0 ;; *) return 1 ;; esac; }
|