Don't list apps when there's not enough ram to install them
This commit is contained in:
parent
fcb209d3a9
commit
fa49e53734
|
@ -30,6 +30,7 @@ VARIANTS="full full-vim writer"
|
||||||
|
|
||||||
IN_DEFAULT_INSTALL=0
|
IN_DEFAULT_INSTALL=0
|
||||||
SHOW_ON_ABOUT=1
|
SHOW_ON_ABOUT=1
|
||||||
|
MINIMUM_RAM_MB=2000
|
||||||
|
|
||||||
ETHERPAD_DOMAIN_NAME=
|
ETHERPAD_DOMAIN_NAME=
|
||||||
ETHERPAD_CODE=
|
ETHERPAD_CODE=
|
||||||
|
|
|
@ -286,6 +286,25 @@ function app_not_on_onion_only {
|
||||||
echo "1"
|
echo "1"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function enough_ram_for_app {
|
||||||
|
app_name="$1"
|
||||||
|
|
||||||
|
if ! grep -q "MINIMUM_RAM_MB=" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}"; then
|
||||||
|
echo "0"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
minimum_ram_MB=$(grep "MINIMUM_RAM_MB=" "/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-${app_name}" | head -n 1 | awk -F '=' '{print $2}')
|
||||||
|
minimum_ram_bytes=$((minimum_ram_MB * 1024))
|
||||||
|
|
||||||
|
ram_available=$(grep MemTotal /proc/meminfo | awk '{print $2}')
|
||||||
|
if [ "$ram_available" -lt "$minimum_ram_bytes" ]; then
|
||||||
|
echo "1"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
echo "0"
|
||||||
|
}
|
||||||
|
|
||||||
# detects what apps are available
|
# detects what apps are available
|
||||||
function detect_apps {
|
function detect_apps {
|
||||||
FILES="/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*"
|
FILES="/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*"
|
||||||
|
@ -299,11 +318,13 @@ function detect_apps {
|
||||||
for filename in $FILES
|
for filename in $FILES
|
||||||
do
|
do
|
||||||
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
||||||
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
if [[ $(enough_ram_for_app "$app_name") != "0" ]]; then
|
||||||
# shellcheck disable=SC2068
|
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
||||||
if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
# shellcheck disable=SC2068
|
||||||
APPS_AVAILABLE+=("${app_name}")
|
if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
||||||
APPS_CHOSEN+=("0")
|
APPS_AVAILABLE+=("${app_name}")
|
||||||
|
APPS_CHOSEN+=("0")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -333,17 +354,19 @@ function detect_installable_apps {
|
||||||
do
|
do
|
||||||
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
||||||
|
|
||||||
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
if [[ $(enough_ram_for_app "$app_name") != "0" ]]; then
|
||||||
# shellcheck disable=SC2068
|
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
||||||
if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
# shellcheck disable=SC2068
|
||||||
variants_list=$(app_variants "$filename")
|
if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
||||||
# check for empty string
|
variants_list=$(app_variants "$filename")
|
||||||
if [ ${#variants_list} -gt 0 ]; then
|
# check for empty string
|
||||||
APPS_AVAILABLE+=("${app_name}")
|
if [ ${#variants_list} -gt 0 ]; then
|
||||||
APPS_CHOSEN+=("0")
|
APPS_AVAILABLE+=("${app_name}")
|
||||||
APPS_INSTALLED+=("$(app_is_installed "$app_name")")
|
APPS_CHOSEN+=("0")
|
||||||
if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
APPS_INSTALLED+=("$(app_is_installed "$app_name")")
|
||||||
APPS_INSTALLED_NAMES+=("$app_name")
|
if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
||||||
|
APPS_INSTALLED_NAMES+=("$app_name")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -367,14 +390,16 @@ function detect_installed_apps {
|
||||||
do
|
do
|
||||||
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
||||||
|
|
||||||
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
if [[ $(enough_ram_for_app "$app_name") != "0" ]]; then
|
||||||
if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
||||||
# shellcheck disable=SC2068
|
if [[ $(app_is_installed "$app_name") == "1" ]]; then
|
||||||
if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
# shellcheck disable=SC2068
|
||||||
variants_list=$(app_variants "$filename")
|
if ! item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
||||||
if [ ${#variants_list} -gt 0 ]; then
|
variants_list=$(app_variants "$filename")
|
||||||
APPS_AVAILABLE+=("${app_name}")
|
if [ ${#variants_list} -gt 0 ]; then
|
||||||
APPS_INSTALLED_NAMES+=("$app_name")
|
APPS_AVAILABLE+=("${app_name}")
|
||||||
|
APPS_INSTALLED_NAMES+=("$app_name")
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -404,27 +429,29 @@ function choose_apps_for_variant {
|
||||||
for filename in $FILES
|
for filename in $FILES
|
||||||
do
|
do
|
||||||
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
||||||
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
if [[ $(enough_ram_for_app "$app_name") != "0" ]]; then
|
||||||
# shellcheck disable=SC2068
|
if [[ $(app_not_on_onion_only "$app_name") != "0" ]]; then
|
||||||
if item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
# shellcheck disable=SC2068
|
||||||
if grep -q "VARIANTS=" "${filename}"; then
|
if item_in_array "${app_name}" ${APPS_AVAILABLE[@]}; then
|
||||||
variants_list=$(app_variants "$filename")
|
if grep -q "VARIANTS=" "${filename}"; then
|
||||||
if [[ "${variants_list}" == 'all'* || \
|
variants_list=$(app_variants "$filename")
|
||||||
"${variants_list}" == "$variant_name" || \
|
if [[ "${variants_list}" == 'all'* || \
|
||||||
"${variants_list}" == "$variant_name "* || \
|
"${variants_list}" == "$variant_name" || \
|
||||||
"${variants_list}" == *" $variant_name "* || \
|
"${variants_list}" == "$variant_name "* || \
|
||||||
"${variants_list}" == *" $variant_name" ]]; then
|
"${variants_list}" == *" $variant_name "* || \
|
||||||
if [[ $(app_is_removed "${a}") == "0" ]]; then
|
"${variants_list}" == *" $variant_name" ]]; then
|
||||||
#echo $"${app_name} chosen"
|
if [[ $(app_is_removed "${a}") == "0" ]]; then
|
||||||
APPS_CHOSEN+=("1")
|
#echo $"${app_name} chosen"
|
||||||
|
APPS_CHOSEN+=("1")
|
||||||
|
else
|
||||||
|
APPS_CHOSEN+=("0")
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
APPS_CHOSEN+=("0")
|
APPS_CHOSEN+=("0")
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
APPS_CHOSEN+=("0")
|
APPS_CHOSEN+=("0")
|
||||||
fi
|
fi
|
||||||
else
|
|
||||||
APPS_CHOSEN+=("0")
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue