Bläddra i källkod

Show only installable apps

Apps with an empty variants string are considered too experimental to be installable
Bob Mottram 8 år sedan
förälder
incheckning
38644d0302
2 ändrade filer med 41 tillägg och 7 borttagningar
  1. 1
    1
      src/freedombone-addremove
  2. 40
    6
      src/freedombone-utils-selector

+ 1
- 1
src/freedombone-addremove Visa fil

172
     exit 2
172
     exit 2
173
 fi
173
 fi
174
 
174
 
175
-detect_apps
175
+detect_installable_apps
176
 
176
 
177
 # if no applications were found
177
 # if no applications were found
178
 if [[ ${#APPS_AVAILABLE[@]} == 0 ]]; then
178
 if [[ ${#APPS_AVAILABLE[@]} == 0 ]]; then

+ 40
- 6
src/freedombone-utils-selector Visa fil

40
 # A list of the names of installed apps
40
 # A list of the names of installed apps
41
 APPS_INSTALLED_NAMES=()
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
 function item_in_array {
54
 function item_in_array {
44
     local e
55
     local e
45
     for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
56
     for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
98
     get_apps_installed_names
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
 # creates the APPS_AVAILABLE and APPS_CHOSEN arrays based on
140
 # creates the APPS_AVAILABLE and APPS_CHOSEN arrays based on
102
 # the given variant name
141
 # the given variant name
103
 function choose_apps_for_variant {
142
 function choose_apps_for_variant {
116
             APPS_AVAILABLE+=("${app_name}")
155
             APPS_AVAILABLE+=("${app_name}")
117
 
156
 
118
             if grep -q "VARIANTS=" ${filename}; then
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
                 if [[ "${variants_list}" == 'all'* || \
159
                 if [[ "${variants_list}" == 'all'* || \
126
                       "${variants_list}" == "$variant_name "* || \
160
                       "${variants_list}" == "$variant_name "* || \
127
                       "${variants_list}" == *" $variant_name "* || \
161
                       "${variants_list}" == *" $variant_name "* || \