#!/usr/bin/env bash
set -euo pipefail

# Требования
REQUIRED_SPACE_GB="10"
REQUIRED_MEMORY_GB="6"

# Нам нужно завершить родительский процесс установки, потому что выход из этого скрипта
# убивает только текущий процесс-перехватчик, а не родительский. Пользователь не получит
# любая визуальная обратная связь, если мы выйдем, но это лучше, чем позволить им убить
# их система.
kill_app_install() {
  pkill --full "app install llama-gpt"
  exit 1
}

# Проверить доступное место
REQUIRED_SPACE_KB=$((REQUIRED_SPACE_GB * 1024 * 1024))
DFWEBOS_ROOT="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/../../..)"
AVAILABLE_SPACE_KB=$(df "${DFWEBOS_ROOT}" | tail -1 | awk '{print $4}')
if (( AVAILABLE_SPACE_KB < REQUIRED_SPACE_KB ))
then
    echo "Not enough available storage space to install LlamaGPT. Exiting."
    kill_app_install
fi

# Проверьте доступную память
REQUIRED_MEMORY_KB=$((REQUIRED_MEMORY_GB * 1024 * 1024))
TOTAL_MEMORY_KB=$(free | grep '^Mem' | awk '{print $2}')
if (( TOTAL_MEMORY_KB < REQUIRED_MEMORY_KB ))
then
    echo "Not enough system memory to install LlamaGPT. Exiting."
    kill_app_install
fi
