m/fzf
1
0
mirror of https://github.com/junegunn/fzf.git synced 2025-11-17 07:43:39 -05:00

install: wait for LF in non-interactive shell

"read -n 1 ..." ignores all but the first character of a line-delimited
stream (e.g. "yes n | ./install").
This commit is contained in:
Justin M. Keyes
2015-04-13 20:05:45 -04:00
parent 3ec83babac
commit d4daece76b

View File

@@ -5,8 +5,15 @@ version=0.9.7
cd $(dirname $BASH_SOURCE) cd $(dirname $BASH_SOURCE)
fzf_base=$(pwd) fzf_base=$(pwd)
# If stdin is a tty, we are "interactive".
[ -t 0 ] && interactive=yes
ask() { ask() {
read -p "$1 ([y]/n) " -n 1 -r # non-interactive shell: wait for a linefeed
# interactive shell: continue after a single keypress
[ -n "$interactive" ] && read_n='-n 1' || read_n=
read -p "$1 ([y]/n) " $read_n -r
echo echo
[[ ! $REPLY =~ ^[Nn]$ ]] [[ ! $REPLY =~ ^[Nn]$ ]]
} }