| 
				
			 | 
			
			
				@@ -40,6 +40,9 @@ APPS_CHOSEN=() 
			 | 
		
	
		
			
			| 
				40
			 | 
			
				40
			 | 
			
			
				 # A list of the names of installed apps 
			 | 
		
	
		
			
			| 
				41
			 | 
			
				41
			 | 
			
			
				 APPS_INSTALLED_NAMES=() 
			 | 
		
	
		
			
			| 
				42
			 | 
			
				42
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				43
			 | 
			
			
				+# file containing a list of removed apps 
			 | 
		
	
		
			
			| 
				
			 | 
			
				44
			 | 
			
			
				+REMOVED_APPS_FILE=/root/removed 
			 | 
		
	
		
			
			| 
				
			 | 
			
				45
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				43
			 | 
			
				46
			 | 
			
			
				 function app_variants { 
			 | 
		
	
		
			
			| 
				44
			 | 
			
				47
			 | 
			
			
				     filename=$1 
			 | 
		
	
		
			
			| 
				45
			 | 
			
				48
			 | 
			
			
				     variants_line=$(cat ${filename} | grep "VARIANTS=") 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -57,6 +60,40 @@ function item_in_array { 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				60
			 | 
			
			
				     return 1 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				61
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				62
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				63
			 | 
			
			
				+function remove_app { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				64
			 | 
			
			
				+    app_name=$1 
			 | 
		
	
		
			
			| 
				
			 | 
			
				65
			 | 
			
			
				+    if [ ! -f $REMOVED_APPS_FILE ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				66
			 | 
			
			
				+        touch $REMOVED_APPS_FILE 
			 | 
		
	
		
			
			| 
				
			 | 
			
				67
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				68
			 | 
			
			
				+    if ! grep -Fxq "$app_name" $REMOVED_APPS_FILE; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				69
			 | 
			
			
				+        echo "$app_name" >> $REMOVED_APPS_FILE 
			 | 
		
	
		
			
			| 
				
			 | 
			
				70
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				71
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				72
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				73
			 | 
			
			
				+function app_is_removed { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				74
			 | 
			
			
				+    app_name="$1" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				75
			 | 
			
			
				+    if [ ! -f $REMOVED_APPS_FILE ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				76
			 | 
			
			
				+        echo "0" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				77
			 | 
			
			
				+        return 
			 | 
		
	
		
			
			| 
				
			 | 
			
				78
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				79
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				80
			 | 
			
			
				+    if ! grep -Fxq "$app_name" $REMOVED_APPS_FILE; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				81
			 | 
			
			
				+        echo "0" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				82
			 | 
			
			
				+    else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				83
			 | 
			
			
				+        echo "1" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				84
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				85
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				86
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				87
			 | 
			
			
				+function reinstall_app { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				88
			 | 
			
			
				+    app_name=$1 
			 | 
		
	
		
			
			| 
				
			 | 
			
				89
			 | 
			
			
				+    if [ ! -f $REMOVED_APPS_FILE ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				90
			 | 
			
			
				+        return 
			 | 
		
	
		
			
			| 
				
			 | 
			
				91
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				92
			 | 
			
			
				+    if [[ $(app_is_removed $app_name) == "1" ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				93
			 | 
			
			
				+        sed -i "/${app_name}/d" $REMOVED_APPS_FILE 
			 | 
		
	
		
			
			| 
				
			 | 
			
				94
			 | 
			
			
				+    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				95
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				96
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				97
			 | 
			
			
				 function app_is_installed { 
			 | 
		
	
		
			
			| 
				61
			 | 
			
				98
			 | 
			
			
				     app_name="$1" 
			 | 
		
	
		
			
			| 
				62
			 | 
			
				99
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -213,6 +250,7 @@ function remove_apps { 
			 | 
		
	
		
			
			| 
				213
			 | 
			
				250
			 | 
			
			
				         if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then 
			 | 
		
	
		
			
			| 
				214
			 | 
			
				251
			 | 
			
			
				             if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then 
			 | 
		
	
		
			
			| 
				215
			 | 
			
				252
			 | 
			
			
				                 echo $"Removing application: ${a}" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				253
			 | 
			
			
				+                remove_app ${a} 
			 | 
		
	
		
			
			| 
				216
			 | 
			
				254
			 | 
			
			
				                 remove_${a} 
			 | 
		
	
		
			
			| 
				217
			 | 
			
				255
			 | 
			
			
				                 echo $"${a} was removed" 
			 | 
		
	
		
			
			| 
				218
			 | 
			
				256
			 | 
			
			
				             fi 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -246,9 +284,20 @@ function install_apps { 
			 | 
		
	
		
			
			| 
				246
			 | 
			
				284
			 | 
			
			
				     do 
			 | 
		
	
		
			
			| 
				247
			 | 
			
				285
			 | 
			
			
				         if [[ ${APPS_INSTALLED[$app_index]} == "0" ]]; then 
			 | 
		
	
		
			
			| 
				248
			 | 
			
				286
			 | 
			
			
				             if [[ ${APPS_CHOSEN[$app_index]} == "1" ]]; then 
			 | 
		
	
		
			
			| 
				249
			 | 
			
				
			 | 
			
			
				-                echo $"Installing application: ${a}" 
			 | 
		
	
		
			
			| 
				250
			 | 
			
				
			 | 
			
			
				-                install_${a} 
			 | 
		
	
		
			
			| 
				251
			 | 
			
				
			 | 
			
			
				-                echo $"${a} was installed" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				287
			 | 
			
			
				+                if [ ${is_interactive} ]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				288
			 | 
			
			
				+                    reinstall_app ${a} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				289
			 | 
			
			
				+                    echo $"Installing application: ${a}" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				290
			 | 
			
			
				+                    install_${a} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				291
			 | 
			
			
				+                    echo $"${a} was installed" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				292
			 | 
			
			
				+                else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				293
			 | 
			
			
				+                    if [[ $(app_is_removed ${a}) == "0" ]]; then 
			 | 
		
	
		
			
			| 
				
			 | 
			
				294
			 | 
			
			
				+                        echo $"Installing application: ${a}" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				295
			 | 
			
			
				+                        install_${a} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				296
			 | 
			
			
				+                        echo $"${a} was installed" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				297
			 | 
			
			
				+                    else 
			 | 
		
	
		
			
			| 
				
			 | 
			
				298
			 | 
			
			
				+                        echo $"${a} has been removed and so will not be reinstalled" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				299
			 | 
			
			
				+                    fi 
			 | 
		
	
		
			
			| 
				
			 | 
			
				300
			 | 
			
			
				+                fi 
			 | 
		
	
		
			
			| 
				252
			 | 
			
				301
			 | 
			
			
				             fi 
			 | 
		
	
		
			
			| 
				253
			 | 
			
				302
			 | 
			
			
				         fi 
			 | 
		
	
		
			
			| 
				254
			 | 
			
				303
			 | 
			
			
				         app_index=$[app_index+1] 
			 |