|
@@ -40,6 +40,17 @@ APPS_CHOSEN=()
|
40
|
40
|
# A list of the names of installed apps
|
41
|
41
|
APPS_INSTALLED_NAMES=()
|
42
|
42
|
|
|
43
|
+function app_variants {
|
|
44
|
+ filename=$1
|
|
45
|
+ variants_line=$(cat ${filename} | grep "VARIANTS=")
|
|
46
|
+ if [[ "$variants_line" == *"'"* ]]; then
|
|
47
|
+ variants_list=$(echo "$variants_line" | awk -F '=' '{print $2}' | awk -F "'" '{print $2}')
|
|
48
|
+ else
|
|
49
|
+ variants_list=$(echo "$variants_line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
|
50
|
+ fi
|
|
51
|
+ echo "$variants_list"
|
|
52
|
+}
|
|
53
|
+
|
43
|
54
|
function item_in_array {
|
44
|
55
|
local e
|
45
|
56
|
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
|
@@ -98,6 +109,34 @@ function detect_apps {
|
98
|
109
|
get_apps_installed_names
|
99
|
110
|
}
|
100
|
111
|
|
|
112
|
+function detect_installable_apps {
|
|
113
|
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
|
|
114
|
+
|
|
115
|
+ APPS_AVAILABLE=()
|
|
116
|
+ APPS_CHOSEN=()
|
|
117
|
+ APPS_INSTALLED=()
|
|
118
|
+ APPS_INSTALLED_NAMES=()
|
|
119
|
+
|
|
120
|
+ function_check app_is_installed
|
|
121
|
+
|
|
122
|
+ # for all the app scripts
|
|
123
|
+ for filename in $FILES
|
|
124
|
+ do
|
|
125
|
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
|
126
|
+ if [[ $(item_in_array ${app_name} ${APPS_AVAILABLE[@]}) != 0 ]]; then
|
|
127
|
+ variants_list=$(app_variants $filename)
|
|
128
|
+ if [ ${#variants_list} -gt 0 ]; then
|
|
129
|
+ APPS_AVAILABLE+=("${app_name}")
|
|
130
|
+ APPS_CHOSEN+=("0")
|
|
131
|
+ APPS_INSTALLED+=("$(app_is_installed $app_name)")
|
|
132
|
+ if [[ $(app_is_installed $app_name) == "1" ]]; then
|
|
133
|
+ APPS_INSTALLED_NAMES+=("$app_name")
|
|
134
|
+ fi
|
|
135
|
+ fi
|
|
136
|
+ fi
|
|
137
|
+ done
|
|
138
|
+}
|
|
139
|
+
|
101
|
140
|
# creates the APPS_AVAILABLE and APPS_CHOSEN arrays based on
|
102
|
141
|
# the given variant name
|
103
|
142
|
function choose_apps_for_variant {
|
|
@@ -116,12 +155,7 @@ function choose_apps_for_variant {
|
116
|
155
|
APPS_AVAILABLE+=("${app_name}")
|
117
|
156
|
|
118
|
157
|
if grep -q "VARIANTS=" ${filename}; then
|
119
|
|
- variants_line=$(cat ${filename} | grep "VARIANTS=")
|
120
|
|
- if [[ "$variants_line" == *"'"* ]]; then
|
121
|
|
- variants_list=$(echo "$variants_line" | awk -F '=' '{print $2}' | awk -F "'" '{print $2}')
|
122
|
|
- else
|
123
|
|
- variants_list=$(echo "$variants_line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
124
|
|
- fi
|
|
158
|
+ variants_list=$(app_variants $filename)
|
125
|
159
|
if [[ "${variants_list}" == 'all'* || \
|
126
|
160
|
"${variants_list}" == "$variant_name "* || \
|
127
|
161
|
"${variants_list}" == *" $variant_name "* || \
|