LibrePortal/scripts/update/git/checks/config_git_check.sh
librelad 875a60f90f LibrePortal v0.1.0 — initial release
A free, open, self-hosted app platform (GNU AGPLv3): one-click app deploys,
Traefik reverse proxy with automatic SSL, rootless Docker support, gluetun
VPN routing, and a web dashboard to manage it all.

Free & open forever to self-host; optional paid hosted services fund it.
See PROMISE.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-21 20:37:54 +01:00

109 lines
4.7 KiB
Bash
Executable File

#!/bin/bash
gitCheckConfigs()
{
# Check variables directly since configs are already loaded
if [[ "$CFG_INSTALL_NAME" == "Change-Me" ]]; then
local valid_configs_found=false
# Get a list of all backup zip files in the directory, sorted by date (latest first)
local backup_files=($(sudo find "$backup_install_dir" -type f -name 'backup_*.zip' | sort -r))
# Check if any backup files were found
if [ ${#backup_files[@]} -eq 0 ]; then
isHeader "Welcome to LibrePortal :)"
isNotice "It looks like this is first time installing LibrePortal on this system."
echo ""
isNotice "If this is a fresh install, continue on..."
isNotice "If you were trying to restore any config backups, nothing was found."
echo ""
while true; do
isQuestion "Do you want to continue? (y/n): "
read -rp " " acceptnoconfigs
if [[ "$acceptnoconfigs" =~ ^[yY]$ ]]; then
break
elif [[ "$acceptnoconfigs" =~ ^[nN]$ ]]; then
echo ""
echo ""
isNotice "Place your LibrePortal install backup file into $backup_install_dir and run the 'libreportal' command."
exitScript
exit;
else
isNotice "Please provide a valid input (y/n)."
fi
done
fi
for zip_file in "${backup_files[@]}"; do
#echo "Processing backup file: $zip_file"
# Create a temporary directory to extract the zip file contents
local temp_dir=$(mktemp -d)
# Extract the zip file contents
unzip -q "$zip_file" -d "$temp_dir"
# Find the path of config files within the extracted files (new structure only)
local config_file_path=$(sudo find "$temp_dir" -type f -path "*/general/basic_settings" | head -1)
if [ -z "$config_file_path" ]; then
config_file_path=$(sudo find "$temp_dir" -type f -path "*/general/git_config" | head -1)
fi
# Check if config file exists and does not contain "Change-Me"
if [ -n "$config_file_path" ] && ! grep -q "Change-Me" "$config_file_path"; then
local valid_configs_found=true
isSuccessful "Valid config found in backup file: $zip_file"
while true; do
isQuestion "Do you want to restore the latest config backup? (y/n): "
read -p "" defaultconfigfound
case $defaultconfigfound in
[yY])
gitUseExistingBackup $zip_file
# Set the flag to exit the loop
break 2 # Exit the outer loop as well
;;
[nN])
isNotice "Custom changes will be kept, continuing..."
break
;;
*)
isNotice "Please provide a valid input (y or n)."
;;
esac
done
#else
#echo "Config file not found or contains 'Change-Me' in backup file: $zip_file"
fi
# Clean up the temporary directory
rm -rf "$temp_dir"
done
# If no valid configs were found in any backup file, display a message
if [ "$valid_configs_found" = false ]; then
if [[ $acceptupdates != [nN] ]]; then
isHeader "Welcome to LibrePortal :)"
isNotice "It looks like this is first time installing LibrePortal on this system."
echo ""
isNotice "If this is a fresh install, continue on..."
isNotice "If you were trying to restore any config backups, nothing was found."
echo ""
while true; do
isQuestion "Do you want to continue with the install? (y/n): "
read -rp "" acceptnoconfigs
if [[ "$acceptnoconfigs" =~ ^[yYnN]$ ]]; then
break
fi
isNotice "Please provide a valid input (y/n)."
done
if [[ $acceptnoconfigs == [nN] ]]; then
echo ""
echo ""
isNotice "Place your LibrePortal install backup file into $backup_install_dir and run the 'libreportal' command."
exitScript
exit
fi
fi
fi
fi
}