From 82bd9637c79dfcfc461c9db51955f7c86f51dd0e Mon Sep 17 00:00:00 2001
From: bolvan <k@vodka.home.kg>
Date: Tue, 7 May 2019 15:02:21 +0300
Subject: [PATCH] install_easy : better default choice handling

---
 install_easy.sh | 32 +++++++++++++++++++++++++-------
 1 file changed, 25 insertions(+), 7 deletions(-)

diff --git a/install_easy.sh b/install_easy.sh
index a0441cc..29778c7 100755
--- a/install_easy.sh
+++ b/install_easy.sh
@@ -93,12 +93,27 @@ install_binaries()
 	call_install_bin
 }
 
+find_str_in_list()
+{
+	[ -n "$1" ] && {
+		for v in $2; do
+			[ "$v" = "$1" ] && return
+		done
+	}
+	false
+}
+
 ask_list()
 {
 	# $1 - mode var
 	# $2 - space separated value list
+	# $3 - (optional) default value
+	local M_DEFAULT
 	eval M_DEFAULT="\$$1"
-	M=""
+	local M_ALL=$M_DEFAULT
+	local M=""
+	
+	[ -n "$3" ] && find_str_in_list "$M_DEFAULT" "$2" || M_DEFAULT="$3"
 	
 	n=1
 	for m in $2; do
@@ -108,10 +123,11 @@ ask_list()
 	echo -n "your choice (default : $M_DEFAULT) : "
 	read m
 	[ -n "$m" ] && M=$(echo $2 | cut -d ' ' -f$m 2>/dev/null)
-	[ -z "$M" ] && M=$M_DEFAULT
+	[ -z "$M" ] && M="$M_DEFAULT"
 	echo selected : $M
-	eval $1=$M
-	[ "$M" != "$M_DEFAULT" ]
+	eval $1="$M"
+	
+	[ "$M" != "$M_OLD" ]
 }
 
 write_config_var()
@@ -123,13 +139,13 @@ write_config_var()
 		sed -ri "s/^#?$1=.*$/$1=$M/" $EXEDIR/config
 	else
 		# write with comment at the beginning
-		sed -ri "s/^#?$1=.*$/#$1=$M/" $EXEDIR/config
+		sed -ri "s/^#?$1=.*$/#$1=/" $EXEDIR/config
 	fi
 }
 select_mode()
 {
 	echo select MODE :
-	ask_list MODE "tpws_ipset tpws_ipset_https tpws_all tpws_all_https tpws_hostlist nfqws_ipset nfqws_ipset_https nfqws_all nfqws_all_https ipset" && write_config_var MODE
+	ask_list MODE "tpws_ipset tpws_ipset_https tpws_all tpws_all_https tpws_hostlist nfqws_ipset nfqws_ipset_https nfqws_all nfqws_all_https ipset" tpws_ipset_https && write_config_var MODE
 }
 select_getlist()
 {
@@ -139,10 +155,12 @@ select_getlist()
 		if [ "$A" != 'N' ] && [ "$A" != 'n' ]; then
 			if [ "${MODE%hostlist*}" != "$MODE" ] ; then
 				GETLISTS="get_hostlist.sh"
+				GETLIST_DEF="get_hostlist.sh"
 			else
 				GETLISTS="get_user.sh get_antizapret.sh get_combined.sh get_reestr.sh"
+				GETLIST_DEF="get_antizapret.sh"
 			fi
-			ask_list GETLIST "$GETLISTS" && write_config_var GETLIST
+			ask_list GETLIST "$GETLISTS" "$GETLIST_DEF" && write_config_var GETLIST
 			return
 		fi
 	fi