|
@@ -272,6 +272,39 @@ function get_apps_installed_names {
|
272
|
272
|
done
|
273
|
273
|
}
|
274
|
274
|
|
|
275
|
+function app_not_on_onion_only {
|
|
276
|
+ app_name="$1"
|
|
277
|
+
|
|
278
|
+ read_config_param ONION_ONLY
|
|
279
|
+
|
|
280
|
+ if [[ "$ONION_ONLY" != 'no' ]]; then
|
|
281
|
+ if grep -q "NOT_ON_ONION=1" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
|
282
|
+ echo "0"
|
|
283
|
+ return
|
|
284
|
+ fi
|
|
285
|
+ fi
|
|
286
|
+ echo "1"
|
|
287
|
+}
|
|
288
|
+
|
|
289
|
+function enough_ram_for_app {
|
|
290
|
+ app_name="$1"
|
|
291
|
+
|
|
292
|
+ if ! grep -q "MINIMUM_RAM_MB=" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
|
293
|
+ echo "0"
|
|
294
|
+ return
|
|
295
|
+ fi
|
|
296
|
+
|
|
297
|
+ minimum_ram_MB=$(grep "MINIMUM_RAM_MB=" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}" | head -n 1 | awk -F '=' '{print $2}')
|
|
298
|
+ minimum_ram_bytes=$((minimum_ram_MB * 1024))
|
|
299
|
+
|
|
300
|
+ ram_available=$(grep MemTotal /proc/meminfo | awk '{print $2}')
|
|
301
|
+ if [ "$ram_available" -lt "$minimum_ram_bytes" ]; then
|
|
302
|
+ echo "1"
|
|
303
|
+ return
|
|
304
|
+ fi
|
|
305
|
+ echo "0"
|
|
306
|
+}
|
|
307
|
+
|
275
|
308
|
# detects what apps are available
|
276
|
309
|
function detect_apps {
|
277
|
310
|
FILES="/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*"
|
|
@@ -285,11 +318,14 @@ function detect_apps {
|
285
|
318
|
for filename in $FILES
|
286
|
319
|
do
|
287
|
320
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
288
|
|
-
|
289
|
|
- # shellcheck disable=SC2068
|
290
|
|
- if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
291
|
|
- APPS_AVAILABLE+=("${app_name}")
|
292
|
|
- APPS_CHOSEN+=("0")
|
|
321
|
+ if [[ $(enough_ram_for_app "$app_name") == "0" ]]; then
|
|
322
|
+ if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
|
323
|
+ # shellcheck disable=SC2068
|
|
324
|
+ if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
|
325
|
+ APPS_AVAILABLE+=("${app_name}")
|
|
326
|
+ APPS_CHOSEN+=("0")
|
|
327
|
+ fi
|
|
328
|
+ fi
|
293
|
329
|
fi
|
294
|
330
|
done
|
295
|
331
|
|
|
@@ -318,16 +354,20 @@ function detect_installable_apps {
|
318
|
354
|
do
|
319
|
355
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
320
|
356
|
|
321
|
|
- # shellcheck disable=SC2068
|
322
|
|
- if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
323
|
|
- variants_list=$(app_variants "$filename")
|
324
|
|
- # check for empty string
|
325
|
|
- if [ ${#variants_list} -gt 0 ]; then
|
326
|
|
- APPS_AVAILABLE+=("${app_name}")
|
327
|
|
- APPS_CHOSEN+=("0")
|
328
|
|
- APPS_INSTALLED+=("$(app_is_installed "$app_name")")
|
329
|
|
- if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
330
|
|
- APPS_INSTALLED_NAMES+=("$app_name")
|
|
357
|
+ if [[ $(enough_ram_for_app "$app_name") == "0" ]]; then
|
|
358
|
+ if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
|
359
|
+ # shellcheck disable=SC2068
|
|
360
|
+ if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
|
361
|
+ variants_list=$(app_variants "$filename")
|
|
362
|
+ # check for empty string
|
|
363
|
+ if [ ${#variants_list} -gt 0 ]; then
|
|
364
|
+ APPS_AVAILABLE+=("${app_name}")
|
|
365
|
+ APPS_CHOSEN+=("0")
|
|
366
|
+ APPS_INSTALLED+=("$(app_is_installed "$app_name")")
|
|
367
|
+ if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
|
368
|
+ APPS_INSTALLED_NAMES+=("$app_name")
|
|
369
|
+ fi
|
|
370
|
+ fi
|
331
|
371
|
fi
|
332
|
372
|
fi
|
333
|
373
|
fi
|
|
@@ -350,13 +390,17 @@ function detect_installed_apps {
|
350
|
390
|
do
|
351
|
391
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
352
|
392
|
|
353
|
|
- if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
354
|
|
- # shellcheck disable=SC2068
|
355
|
|
- if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
356
|
|
- variants_list=$(app_variants "$filename")
|
357
|
|
- if [ ${#variants_list} -gt 0 ]; then
|
358
|
|
- APPS_AVAILABLE+=("${app_name}")
|
359
|
|
- APPS_INSTALLED_NAMES+=("$app_name")
|
|
393
|
+ if [[ $(enough_ram_for_app "$app_name") == "0" ]]; then
|
|
394
|
+ if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
|
395
|
+ if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
|
396
|
+ # shellcheck disable=SC2068
|
|
397
|
+ if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
|
398
|
+ variants_list=$(app_variants "$filename")
|
|
399
|
+ if [ ${#variants_list} -gt 0 ]; then
|
|
400
|
+ APPS_AVAILABLE+=("${app_name}")
|
|
401
|
+ APPS_INSTALLED_NAMES+=("$app_name")
|
|
402
|
+ fi
|
|
403
|
+ fi
|
360
|
404
|
fi
|
361
|
405
|
fi
|
362
|
406
|
fi
|
|
@@ -385,27 +429,30 @@ function choose_apps_for_variant {
|
385
|
429
|
for filename in $FILES
|
386
|
430
|
do
|
387
|
431
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
388
|
|
-
|
389
|
|
- # shellcheck disable=SC2068
|
390
|
|
- if item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
391
|
|
- if grep -q "VARIANTS=" "${filename}"; then
|
392
|
|
- variants_list=$(app_variants "$filename")
|
393
|
|
- if [[ "${variants_list}" == 'all'* || \
|
394
|
|
- "${variants_list}" == "$variant_name" || \
|
395
|
|
- "${variants_list}" == "$variant_name "* || \
|
396
|
|
- "${variants_list}" == *" $variant_name "* || \
|
397
|
|
- "${variants_list}" == *" $variant_name" ]]; then
|
398
|
|
- if [[ $(app_is_removed "${a}") == "0" ]]; then
|
399
|
|
- #echo $"${app_name} chosen"
|
400
|
|
- APPS_CHOSEN+=("1")
|
|
432
|
+ if [[ $(enough_ram_for_app "$app_name") == "0" ]]; then
|
|
433
|
+ if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
|
434
|
+ # shellcheck disable=SC2068
|
|
435
|
+ if item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
|
436
|
+ if grep -q "VARIANTS=" "${filename}"; then
|
|
437
|
+ variants_list=$(app_variants "$filename")
|
|
438
|
+ if [[ "${variants_list}" == 'all'* || \
|
|
439
|
+ "${variants_list}" == "$variant_name" || \
|
|
440
|
+ "${variants_list}" == "$variant_name "* || \
|
|
441
|
+ "${variants_list}" == *" $variant_name "* || \
|
|
442
|
+ "${variants_list}" == *" $variant_name" ]]; then
|
|
443
|
+ if [[ $(app_is_removed "${a}") == "0" ]]; then
|
|
444
|
+ #echo $"${app_name} chosen"
|
|
445
|
+ APPS_CHOSEN+=("1")
|
|
446
|
+ else
|
|
447
|
+ APPS_CHOSEN+=("0")
|
|
448
|
+ fi
|
|
449
|
+ else
|
|
450
|
+ APPS_CHOSEN+=("0")
|
|
451
|
+ fi
|
401
|
452
|
else
|
402
|
453
|
APPS_CHOSEN+=("0")
|
403
|
454
|
fi
|
404
|
|
- else
|
405
|
|
- APPS_CHOSEN+=("0")
|
406
|
455
|
fi
|
407
|
|
- else
|
408
|
|
- APPS_CHOSEN+=("0")
|
409
|
456
|
fi
|
410
|
457
|
fi
|
411
|
458
|
done
|