#!/bin/bash # Enqueue a backup for every installed app that has backups enabled. Invoked # once daily by the backup scheduler crontab entry. Each app is handed to # backupAppSchedule, which queues a task for the processor (WebUI installs) or # runs the backup inline (terminal-only installs). backupScheduleEnabledApps() { isHeader "Scheduling backups for enabled applications" if [ ! -f "$docker_dir/$db_file" ]; then isError "Database not found: $docker_dir/$db_file" return 1 fi local app_names=() while IFS= read -r name; do [[ -z "$name" ]] && continue app_names+=("$name") done < <(runInstallOp sqlite3 "$docker_dir/$db_file" "SELECT name FROM apps WHERE status = 1;") local queued=0 for name in "${app_names[@]}"; do local backup_flag="CFG_${name^^}_BACKUP" if [[ "${!backup_flag}" == "true" ]]; then backupAppSchedule "$name" ((queued++)) fi done isSuccessful "Backup scheduling complete — $queued app(s) queued" }