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>
109 lines
4.7 KiB
Bash
Executable File
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
|
|
}
|