Compare commits

...

5 Commits

Author SHA1 Message Date
cravl-dev
d7f74ba9be Merge 08786d64e8 into d800d356ca 2024-03-26 10:09:04 +01:00
dw-0
d800d356ca fix(backups): backup config folder only if it exists
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
2024-03-24 19:45:02 +01:00
Cameron Ryder
08786d64e8 fix: don't block user and check more than home 2023-06-28 14:45:33 -04:00
cravl-dev
a976e60ffd Merge branch 'th33xitus:master' into fix-331 2023-06-28 14:44:45 -04:00
Cameron Ryder
3099a6c9fb feat: add free disk space startup check (#331) 2023-06-08 11:45:32 -04:00
3 changed files with 35 additions and 9 deletions

View File

@@ -82,6 +82,7 @@ function kiauh_update_dialog() {
} }
check_euid check_euid
check_free_space
init_logfile init_logfile
set_globals set_globals
kiauh_update_dialog kiauh_update_dialog

View File

@@ -43,15 +43,17 @@ function backup_config_dir() {
local i=0 folder folder_name target_dir local i=0 folder folder_name target_dir
for folder in ${config_pathes}; do for folder in ${config_pathes}; do
status_msg "Create backup of ${folder} ..." if [[ -d ${folder} ]]; then
status_msg "Create backup of ${folder} ..."
folder_name=$(echo "${folder}" | rev | cut -d"/" -f2 | rev)
target_dir="${BACKUP_DIR}/configs/${current_date}/${folder_name}" folder_name=$(echo "${folder}" | rev | cut -d"/" -f2 | rev)
mkdir -p "${target_dir}" target_dir="${BACKUP_DIR}/configs/${current_date}/${folder_name}"
cp -r "${folder}" "${target_dir}" mkdir -p "${target_dir}"
i=$(( i + 1 )) cp -r "${folder}" "${target_dir}"
i=$(( i + 1 ))
ok_msg "Backup created in:\n${target_dir}"
ok_msg "Backup created in:\n${target_dir}"
fi
done done
else else
ok_msg "No config directory found! Skipping backup ..." ok_msg "No config directory found! Skipping backup ..."

View File

@@ -28,6 +28,29 @@ function check_euid() {
fi fi
} }
function check_free_space() {
local mount_free mb_rec=2048
local mount_check_regex='^/($|bin|etc|home|lib|mnt|opt|root|sbin|tmp|usr|var)' # all root dirs possibly relevant to software install
for mount_check in $(cat /etc/mtab | grep '^/dev' | cut -d ' ' -f 2 | grep -E '${mount_check_regex}'); do
mount_free=$(($(df -Pk ${mount_check} | sed 1d | grep -v used | awk '{ print $4 "\t" }')/1024))
if [[ ${mount_free} -lt ${mb_req} ]]; then
local yn
while true; do
echo -e "${yellow}Heads up! Free disk space in ${white}${mount_check}${yellow} is only ${white}${mount_free} MB${yellow}.${white}"
read -p "${yellow}You may run into errors installing or updating software that uses this mountpoint. Proceed? (y|N): ${white}" yn
case "${yn}" in
Y|y|Yes|yes)
break;;
N|n|No|no|"")
exit 1;;
*)
echo -e "${red}Please answer "y" or "n"${white}";;
esac
done
fi
done
}
#================================================# #================================================#
#============= MESSAGE FORMATTING ===============# #============= MESSAGE FORMATTING ===============#
#================================================# #================================================#