tweaking the scripting mode...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2024-01-30 22:40:37 +03:00
parent 1f49774770
commit 6c13fbf24b

View File

@ -178,6 +178,10 @@ xread(){
shift shift
local non_empty=1 local non_empty=1
fi fi
local prefix=
if [ $SCRIPTING ] ; then
prefix='# '
fi
# skip... # skip...
if [[ "${!2}" == "SKIP" ]] \ if [[ "${!2}" == "SKIP" ]] \
|| [[ "$(eval "echo \$DFL_$2")" == "SKIP" ]] ; then || [[ "$(eval "echo \$DFL_$2")" == "SKIP" ]] ; then
@ -185,7 +189,7 @@ xread(){
return return
fi fi
if [ -z ${!2} ] ; then if [ -z ${!2} ] ; then
eval 'read -ep "'$1'" -i "$DFL_'$2'" '${2}'' eval 'read -ep "'$prefix''$1'" -i "$DFL_'$2'" '${2}''
XREAD_VARS+=(${2}) XREAD_VARS+=(${2})
fi fi
if [ -z $non_empty ] ; then if [ -z $non_empty ] ; then
@ -200,12 +204,16 @@ xread(){
# #
xreadYes(){ xreadYes(){
if [ -z ${2} ] ; then if [ -z ${2} ] ; then
local var=__X local var=__LOCAL
local __X local __LOCAL
else else
local var=${2} local var=${2}
local mode= local mode=
fi fi
local prefix=
if [ $SCRIPTING ] ; then
prefix='# '
fi
# XXX check DFL_..??? # XXX check DFL_..???
if [[ "${!var}" == "SKIP" ]] ; then if [[ "${!var}" == "SKIP" ]] ; then
eval "$var=" eval "$var="
@ -221,7 +229,7 @@ xreadYes(){
local no=n local no=n
local dfl=1 local dfl=1
fi fi
eval 'read -ep "'$1' ('$yes'/'$no') " '${var}'' eval 'read -ep "'$prefix''$1' ('$yes'/'$no') " '${var}''
XREAD_VARS+=(${var}) XREAD_VARS+=(${var})
# normalize... # normalize...
eval "${var}=${!var,,}" eval "${var}=${!var,,}"
@ -235,6 +243,7 @@ xreadYes(){
fi fi
fi fi
[ $SCRIPTING ] \ [ $SCRIPTING ] \
&& [[ "$var" != '__LOCAL' ]] \
&& echo "$var=${!var}" && echo "$var=${!var}"
if [ -z ${!var} ] ; then if [ -z ${!var} ] ; then
@ -249,18 +258,22 @@ xreadpass(){
if [[ ${!1} == 'SKIP' ]] ; then if [[ ${!1} == 'SKIP' ]] ; then
return return
fi fi
local prefix=
if [ $SCRIPTING ] ; then
prefix='# '
fi
local PASS1 local PASS1
local PASS2 local PASS2
for attempt in 1 2 3 ; do for attempt in 1 2 3 ; do
read -sep "password (Enter to skip): " PASS1 read -sep "${prefix}password (Enter to skip): " PASS1
echo echo
if [ -z $PASS1 ] ; then if [ -z $PASS1 ] ; then
return return
fi fi
read -sep "retype password: " PASS2 read -sep "${prefix}retype password: " PASS2
echo echo
if [[ $PASS1 != $PASS2 ]] ; then if [[ $PASS1 != $PASS2 ]] ; then
echo "ERR: passwords do not match." echo "ERROR: passwords do not match." >&2
continue continue
fi fi
eval ''$1'='${PASS1}'' eval ''$1'='${PASS1}''