From 1024f0b936fa4466f5121f2013f3d0586383f56a Mon Sep 17 00:00:00 2001 From: Bryan Roessler Date: Thu, 21 Oct 2021 11:14:10 -0400 Subject: [PATCH] Fix banner --- script-install-banner | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/script-install-banner b/script-install-banner index 65423f90..3d15fac2 100644 --- a/script-install-banner +++ b/script-install-banner @@ -16,11 +16,45 @@ if [[ -v DEBUG ]]; then banner="banner.sh" else banner="$profiledir/banner.sh" - [[ -f ./functions ]] && cp functions "$profiledir" + [[ -f ./functions ]] && cp -f functions "$profiledir" fi cat <<- 'EOF' > "$banner" #!/usr/bin/env bash +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 echo -n ' _ _ _ _ _ | | | | | | | | | |