From ed0e6be64ebd77ea7e34244703175f42b27dfb50 Mon Sep 17 00:00:00 2001
From: Bob Mottram <bob@robotics.uk.to>
Date: Wed, 28 Sep 2016 21:26:36 +0100
Subject: [PATCH] Selecting full installs

---
 src/freedombone-utils-selector | 215 +++++++++++++++++----------------
 1 file changed, 110 insertions(+), 105 deletions(-)

diff --git a/src/freedombone-utils-selector b/src/freedombone-utils-selector
index 8cc98281e..b2aaaa134 100755
--- a/src/freedombone-utils-selector
+++ b/src/freedombone-utils-selector
@@ -41,137 +41,142 @@ APPS_CHOSEN=()
 APPS_INSTALLED_NAMES=()
 
 function item_in_array {
-	local e
-	for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
-	return 1
+    local e
+    for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
+    return 1
 }
 
 function app_is_installed {
-	app_name="$1"
-	if [ ! -f $COMPLETION_FILE ]; then
-		echo "0"
-		return
-	fi
-
-	if ! grep -Fxq "install_${app_name}" $COMPLETION_FILE; then
-		echo "0"
-	else
-		echo "1"
-	fi
+    app_name="$1"
+    if [ ! -f $COMPLETION_FILE ]; then
+        echo "0"
+        return
+    fi
+
+    if ! grep -Fxq "install_${app_name}" $COMPLETION_FILE; then
+        echo "0"
+    else
+        echo "1"
+    fi
 }
 
 function get_apps_installed {
-	for a in "${APPS_AVAILABLE[@]}"
-	do
-		APPS_INSTALLED+=("$(app_is_installed $a)")
-	done
+    for a in "${APPS_AVAILABLE[@]}"
+    do
+        APPS_INSTALLED+=("$(app_is_installed $a)")
+    done
 }
 
 function get_apps_installed_names {
-	APPS_INSTALLED_NAMES=()
-	for a in "${APPS_AVAILABLE[@]}"
-	do
-		if [[ $(app_is_installed $a) == "1" ]]; then
-			APPS_INSTALLED_NAMES+=("$a")
-		fi
-	done
+    APPS_INSTALLED_NAMES=()
+    for a in "${APPS_AVAILABLE[@]}"
+    do
+        if [[ $(app_is_installed $a) == "1" ]]; then
+            APPS_INSTALLED_NAMES+=("$a")
+        fi
+    done
 }
 
 function detect_apps {
-	FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
-
-	APPS_AVAILABLE=()
-	APPS_CHOSEN=()
-
-	# for all the app scripts
-	for filename in $FILES
-	do
-		app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
-		if [[ $(item_in_array ${app_name} ${APPS_AVAILABLE[@]}) != 0 ]]; then
-			APPS_AVAILABLE+=("${app_name}")
-			APPS_CHOSEN+=("0")
-		fi
-	done
-
-	function_check get_apps_installed
-	get_apps_installed
-	get_apps_installed_names
+    FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+    APPS_AVAILABLE=()
+    APPS_CHOSEN=()
+
+    # for all the app scripts
+    for filename in $FILES
+    do
+        app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+        if [[ $(item_in_array ${app_name} ${APPS_AVAILABLE[@]}) != 0 ]]; then
+            APPS_AVAILABLE+=("${app_name}")
+            APPS_CHOSEN+=("0")
+        fi
+    done
+
+    function_check get_apps_installed
+    get_apps_installed
+    get_apps_installed_names
 }
 
 # creates the APPS_AVAILABLE and APPS_CHOSEN arrays based on
 # the given variant name
 function choose_apps_for_variant {
-	variant_name="$1"
-
-	FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
-
-	APPS_AVAILABLE=()
-	APPS_CHOSEN=()
-
-	# for all the app scripts
-	for filename in $FILES
-	do
-		app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
-		if [[ $(item_in_array ${app_name} ${APPS_AVAILABLE[@]}) != 0 ]]; then
-			APPS_AVAILABLE+=("${app_name}")
-
-			if grep -q "VARIANTS=" ${filename}; then
-				variants_list="$(cat ${filename} | grep "VARIANTS=" | awk -F '=' '{print $2}' | awk -F "'" '{print $2}')"
-				if [[ "${variants_list}" == 'all' || "${variants_list}" == "$variant_name "* || "${variants_list}" == *" $variant_name "* || "${variants_list}" == *" $variant_name" ]]; then
-					APPS_CHOSEN+=("1")
-				else
-					APPS_CHOSEN+=("0")
-				fi
-			else
-				APPS_CHOSEN+=("0")
-			fi
-
-		fi
-	done
-
-	function_check get_apps_installed
-	get_apps_installed
+    variant_name="$1"
+
+    FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
+
+    APPS_AVAILABLE=()
+    APPS_CHOSEN=()
+
+    # for all the app scripts
+    for filename in $FILES
+    do
+        app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
+        if [[ $(item_in_array ${app_name} ${APPS_AVAILABLE[@]}) != 0 ]]; then
+            APPS_AVAILABLE+=("${app_name}")
+
+            if grep -q "VARIANTS=" ${filename}; then
+                variants_list="$(cat ${filename} | grep "VARIANTS=" | awk -F '=' '{print $2}' | awk -F "'" '{print $2}')"
+                if [[ "${variants_list}" == 'all' || \
+                      "${variants_list}" == 'any' || \
+                      "${variants_list}" == 'full' || \
+                      "${variants_list}" == "$variant_name "* || \
+                      "${variants_list}" == *" $variant_name "* || \
+                      "${variants_list}" == *" $variant_name" ]]; then
+                    APPS_CHOSEN+=("1")
+                else
+                    APPS_CHOSEN+=("0")
+                fi
+            else
+                APPS_CHOSEN+=("0")
+            fi
+
+        fi
+    done
+
+    function_check get_apps_installed
+    get_apps_installed
 }
 
 function list_chosen_apps {
-	app_index=0
-	for a in "${APPS_AVAILABLE[@]}"
-	do
-		if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
-			echo $"${a}"
-		fi
-		app_index=$[app_index+1]
-	done
+    app_index=0
+    for a in "${APPS_AVAILABLE[@]}"
+    do
+        if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
+            echo $"${a}"
+        fi
+        app_index=$[app_index+1]
+    done
 }
 
 function remove_apps {
-	app_index=0
-	for a in "${APPS_AVAILABLE[@]}"
-	do
-		if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
-			if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
-				echo $"Removing application: ${a}"
-				remove_${a}
-				echo $"${a} was removed"
-			fi
-		fi
-		app_index=$[app_index+1]
-	done
+    app_index=0
+    for a in "${APPS_AVAILABLE[@]}"
+    do
+        if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
+            if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
+                echo $"Removing application: ${a}"
+                remove_${a}
+                echo $"${a} was removed"
+            fi
+        fi
+        app_index=$[app_index+1]
+    done
 }
 
 function install_apps {
-	app_index=0
-	for a in "${APPS_AVAILABLE[@]}"
-	do
-		if [[ ${APPS_INSTALLED[$app_index]} == "0" ]]; then
-			if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
-				echo $"Installing application: ${a}"
-				install_${a}
-				echo $"${a} was installed"
-			fi
-		fi
-		app_index=$[app_index+1]
-	done
+    app_index=0
+    for a in "${APPS_AVAILABLE[@]}"
+    do
+        if [[ ${APPS_INSTALLED[$app_index]} == "0" ]]; then
+            if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then
+                echo $"Installing application: ${a}"
+                install_${a}
+                echo $"${a} was installed"
+            fi
+        fi
+        app_index=$[app_index+1]
+    done
 }
 
 # NOTE: deliberately no exit 0
-- 
GitLab