Files
hartman-server/functions
2021-10-21 11:07:24 -04:00

57 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# Common functions for the lab scripts
# Copyright 2021 Bryan C. Roessler
# Don't run this script directly
[[ "${BASH_SOURCE[0]}" == "${0}" ]] && exit 0
ask_ok() {
read -r -p "$* [y/N]" response
response=${response,,}
[[ ! "$response" =~ ^(yes|y)$ ]] && return 1
return 0
}
is_root() {
user=$(whoami)
[[ $user != "root" ]] && echo "Script must be run with sudo rights!" && exit 1
}
if ! type -t readarray >/dev/null; then
readarray() {
local cmd opt t v=MAPFILE
while [ -n "$1" ]; do
case "$1" in
-h|--help) echo "minimal substitute readarray for older bash"; exit; ;;
-r) shift; opt="$opt -r"; ;;
-t) shift; t=1; ;;
-u)
shift;
if [ -n "$1" ]; then
opt="$opt -u $1";
shift
fi
;;
*)
if [[ "$1" =~ ^[A-Za-z_]+$ ]]; then
v="$1"
shift
else
echo -en "${C_BOLD}${C_RED}Error: ${C_RESET}Unknown option: '$1'\n" 1>&2
exit
fi
;;
esac
done
cmd="read $opt"
eval "$v=()"
while IFS= eval "$cmd line"; do
line=$(echo "$line" | sed -e "s#\([\"\`]\)#\\\\\1#g" )
eval "${v}+=(\"$line\")"
done
}
fi