added timeout on read function
This commit is contained in:
parent
0621f62267
commit
1836f04938
|
@ -63,6 +63,19 @@ get_now() {
|
||||||
date +"%Y-%m-%dT%H:%M:%S%z"
|
date +"%Y-%m-%dT%H:%M:%S%z"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# timeout on read(), uses TMOUT env as timer
|
||||||
|
timedout_read() {
|
||||||
|
if [ -z ${TMOUT+x} ] || [ "$TMOUT" = 0 ]; then
|
||||||
|
export TMOUT=36000
|
||||||
|
fi
|
||||||
|
user_input=$1
|
||||||
|
old_tty_settings=$(stty -g)
|
||||||
|
stty -icanon min 0 time ${TMOUT}0
|
||||||
|
read $user_input
|
||||||
|
stty "$old_tty_settings"
|
||||||
|
unset TMOUT
|
||||||
|
}
|
||||||
|
|
||||||
test -f /etc/evomaintenance.cf && . /etc/evomaintenance.cf
|
test -f /etc/evomaintenance.cf && . /etc/evomaintenance.cf
|
||||||
|
|
||||||
[ -n "${HOSTNAME}" ] || HOSTNAME=$(get_fqdn)
|
[ -n "${HOSTNAME}" ] || HOSTNAME=$(get_fqdn)
|
||||||
|
@ -123,7 +136,7 @@ fi
|
||||||
|
|
||||||
# get input from stdin
|
# get input from stdin
|
||||||
echo "> Please, enter details about your maintenance"
|
echo "> Please, enter details about your maintenance"
|
||||||
read TEXTE
|
timedout_read TEXTE
|
||||||
|
|
||||||
if [ "${TEXTE}" = "" ]; then
|
if [ "${TEXTE}" = "" ]; then
|
||||||
echo "no value..."
|
echo "no value..."
|
||||||
|
@ -145,7 +158,7 @@ echo ""
|
||||||
echo "${BLOB}"
|
echo "${BLOB}"
|
||||||
echo ""
|
echo ""
|
||||||
echo "> Press <Enter> to submit, or <Ctrl+c> to cancel."
|
echo "> Press <Enter> to submit, or <Ctrl+c> to cancel."
|
||||||
read enter
|
timedout_read enter
|
||||||
|
|
||||||
# write log
|
# write log
|
||||||
echo "----------- $(get_now) ---------------" >> "${LOGFILE}"
|
echo "----------- $(get_now) ---------------" >> "${LOGFILE}"
|
||||||
|
|
Loading…
Reference in a new issue