diff options
author | Alexander Hall <halex@cvs.openbsd.org> | 2010-06-30 19:31:20 +0000 |
---|---|---|
committer | Alexander Hall <halex@cvs.openbsd.org> | 2010-06-30 19:31:20 +0000 |
commit | bc78374b30e3336ff169b894ad7b75694e7b3773 (patch) | |
tree | af781814c3f38ff046326e7909bc1697c1b8f8f2 /distrib | |
parent | f17407b7baba9198ecd8a467cbe39994d2955ad1 (diff) |
make the installer quit when ^D is pressed at any prompt
ok deraadt@
Diffstat (limited to 'distrib')
-rw-r--r-- | distrib/miniroot/dot.profile | 5 | ||||
-rw-r--r-- | distrib/miniroot/install.sub | 10 |
2 files changed, 8 insertions, 7 deletions
diff --git a/distrib/miniroot/dot.profile b/distrib/miniroot/dot.profile index 3bac832dfb3..e6f70ee3842 100644 --- a/distrib/miniroot/dot.profile +++ b/distrib/miniroot/dot.profile @@ -1,4 +1,4 @@ -# $OpenBSD: dot.profile,v 1.14 2010/01/10 13:32:56 deraadt Exp $ +# $OpenBSD: dot.profile,v 1.15 2010/06/30 19:31:19 halex Exp $ # $NetBSD: dot.profile,v 1.1 1995/12/18 22:54:43 pk Exp $ # # Copyright (c) 2009 Kenneth R. Westerback @@ -61,8 +61,7 @@ if [ "X${DONEPROFILE}" = "X" ]; then Welcome to the $OBSD installation program. __EOT - while :; do - read REPLY?'(I)nstall, (U)pgrade or (S)hell? ' + while read REPLY?'(I)nstall, (U)pgrade or (S)hell? '; do case $REPLY in i*|I*) /install && break ;; diff --git a/distrib/miniroot/install.sub b/distrib/miniroot/install.sub index 405237084cd..dbf00ee7d50 100644 --- a/distrib/miniroot/install.sub +++ b/distrib/miniroot/install.sub @@ -1,4 +1,4 @@ -# $OpenBSD: install.sub,v 1.607 2010/06/30 00:23:02 halex Exp $ +# $OpenBSD: install.sub,v 1.608 2010/06/30 19:31:19 halex Exp $ # $NetBSD: install.sub,v 1.5.2.8 1996/09/02 23:25:02 pk Exp $ # # Copyright (c) 1997-2009 Todd Miller, Theo de Raadt, Ken Westerback @@ -175,7 +175,7 @@ mount_mnt2() { askpass() { set -o noglob stty -echo - read -r resp?"$1 " + read -r resp?"$1 " || exit 1 stty echo set +o noglob echo @@ -227,16 +227,18 @@ retrap # and the function will return a non-zero value. Normally, the caller # will then reprint any prompt and call the function again. _ask() { - local _int _redo=0 _pid + local _int _redo=0 _pid _fail trap "_int=1" INT trap "_redo=1" TERM lock; dmesg >/tmp/update; unlock - read resp + read resp || _fail=1 lock; rm /tmp/update; unlock if (( _redo )); then stty raw stty -raw + elif [[ -n $_fail ]]; then + exit 1 else case $resp in !) echo "Type 'exit' to return to install." |