Procházet zdrojové kódy

Show only installable apps

Apps with an empty variants string are considered too experimental to be installable
Bob Mottram před 8 roky
rodič
revize
38644d0302
2 změnil soubory, kde provedl 41 přidání a 7 odebrání
  1. 1
    1
      src/freedombone-addremove
  2. 40
    6
      src/freedombone-utils-selector

+ 1
- 1
src/freedombone-addremove Zobrazit soubor

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

+ 40
- 6
src/freedombone-utils-selector Zobrazit soubor

@@ -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 "* || \