vinstaller/functions
2022-02-07 04:09:57 +01:00

116 lines
2.7 KiB
Plaintext

err() {
echo $1
echo "exiting.."
exit 1
}
input_old() {
local input
local found="0"
echo "$1 $2"
read input
for i in $2; do
if [ "$i" == "$input" ]; then
found=1
fi
done
if [ "$found" == "0" ]; then
err "$input: $3"
return 1
fi
output="$input"
}
header() {
clear
echo "#### $1"
}
addpkg() {
for i in $@; do
pkgs+=( "$i" )
done
}
enable_service() {
ln -s /etc/sv/$1 /etc/runit/runsvdir/default/
}
reset() {
if [ "$1" == "packages" ]; then
function packages() { :; }
fi
}
input() {
output=""
echo "${1}"
read -r -p "[${2}]: " output
test -z "${output}" && output="${2}"
return 0
}
#multiplechoice "networksystem" "dhcpcd" "networkmanager" "iwd" "none"
multiplechoice() {
output=""
local done=""
local input=("${@}")
#for i in $(seq 1 "$(( ${#input[@]} - 1 ))"); do
for i in $(seq 0 "$(( ${#input[@]} - 1 ))"); do
if [[ "${i}" == "0" ]]; then
choices="${input[$i]}"
use="${input[$i]}"
else
choices="${choices}|${input[$i]}"
use+=" ${input[$i]}"
fi
done
while input "[${choices}]: " "${input[0]}"; do
for i in $(seq 0 "${#input[@]}"); do
if [[ "${output}" == "${input[$i]}" ]] || [[ "${output}" == "${input[$i]:0:2}" ]]; then
output="${input[$i]}"
done=1
fi
done
if [[ -z "${done}" ]]; then
echo wronginput "${output}"
echo use these: "${use}"
else
break
fi
done
}
yesno() {
local input=""
local retval=""
local default=""
local q=""
case "${2}" in
Y|y) q="${1} [Y|n]:"; default=y;;
N|n) q="${1} [y|N]:"; default=n;;
esac
while read -r -p "${q} " input; do
test -z "${input}" && input="${default}"
case "${input}" in
y*|Y*|*es*|*ES*|*Es*|*eS*|1)
retval=1
break
;;
n*|N*|0)
retval=""
break
;;
*) wronginput "${input}" "${choices[*]}"
;;
esac
done
if [[ -z "${retval}" ]]; then
return 1
else
return 0
fi
}