Files
wireguard-scripts/tests/mocks/bin/gum
T

51 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
set -Eeuo pipefail
command_name=${0##*/}
: "${TEST_MOCK_LOG:?TEST_MOCK_LOG must identify the isolated test log}"
printf '%q' "$command_name" >>"$TEST_MOCK_LOG"
for argument in "$@"; do printf ' %q' "$argument" >>"$TEST_MOCK_LOG"; done
printf '\n' >>"$TEST_MOCK_LOG"
if (($# == 1)) && [[ $1 == --version ]]; then printf 'gum version 0.14.0\n'; exit 0; fi
subcommand=${1:-}
if [[ $subcommand == --help || $subcommand == '' ]]; then exit 0; fi
if (($# >= 2)) && [[ ${!#} == --help ]]; then
[[ ${GUM_FAIL_CAPABILITY:-} == "$subcommand" ]] && exit 98
exit 0
fi
case $subcommand in
style)
[[ $# -gt 1 ]] && [[ ${!#} != *'\n'* ]] || exit 98
if [[ -n ${GUM_STYLE_CAPTURE:-} ]]; then printf '%s' "${!#}" >"$GUM_STYLE_CAPTURE"; fi
printf '%s\n' "${!#}"
exit 0
;;
table|pager)
if [[ -n ${GUM_PAGER_CAPTURE:-} ]]; then cat >"$GUM_PAGER_CAPTURE"; else cat >/dev/null; fi
exit 0
;;
spin) exit 0 ;;
choose|filter|input|confirm)
if [[ -n ${GUM_CHOICES_CAPTURE:-} && ( $subcommand == choose || $subcommand == filter ) ]]; then
: >"$GUM_CHOICES_CAPTURE"
if [[ $subcommand == filter ]]; then
shift 3
else
shift
fi
printf '%s\n' "$@" >>"$GUM_CHOICES_CAPTURE"
fi
script=${GUM_SCRIPT_FILE:-}; answer=''
if [[ -n $script && -f $script ]]; then
IFS= read -r answer <"$script" || answer=''
tail -n +2 -- "$script" >"${script}.next"
mv -- "${script}.next" "$script"
fi
case $subcommand in
confirm) [[ $answer == y || $answer == Y ]] || exit 1; exit 0 ;;
input) [[ -n $answer ]] || exit 1; printf '%s\n' "$answer"; exit 0 ;;
*) [[ -n $answer ]] && printf '%s\n' "$answer" || exit 1; exit 0 ;;
esac
;;
*) printf 'Unexpected gum subcommand: %s\n' "$subcommand" >&2; exit 99 ;;
esac