1
0
Fork 0
mirror of https://github.com/notwa/rc synced 2024-11-14 08:59:03 -08:00
rc/sh/pause

37 lines
1.1 KiB
Text
Raw Normal View History

#!/usr/bin/env sh
# YES_ZSH YES_BASH YES_DASH YES_ASH
2021-07-29 00:37:35 -07:00
### @ pause
### pause — the companion script of [`confirm`.](#confirm)
###
### ```
### $ pause
### Press any key to continue
### $
### ```
if [ -n "$ZSH_VERSION" ]; then
pause() {
2021-09-28 12:34:56 -07:00
[ $# -eq 0 ] || { printf "%s\n" "$0: too many arguments" >&2; return 2; }
local c=
read -sk $'?Press any key to continue\n' c
}
elif [ -n "$BASH_VERSION" ]; then
pause() {
2021-09-28 12:34:56 -07:00
[ $# -eq 0 ] || { printf "%s\n" "$0: too many arguments" >&2; return 2; }
local c=
read -n1 -sp $'Press any key to continue\n' c 2>&1
} 1<>/dev/tty <&1 # ensure this interacts with a terminal instead of a pipe
else
pause() (
2021-09-28 12:34:56 -07:00
[ $# -eq 0 ] || { printf "%s\n" "$0: too many arguments" >&2; return 2; }
old="$(stty -g)"
trap 'stty "$old"' INT EXIT
printf 'Press any key to continue\n'
stty -icanon -echo
dd ibs=1 count=1 2>/dev/null >/dev/null
) 1<>/dev/tty <&1 # ensure this interacts with a terminal instead of a pipe
fi
2021-07-29 00:37:35 -07:00
[ -n "${preload+-}" ] || pause "$@"