Updated framework

This commit is contained in:
2026-03-27 16:50:20 +00:00
parent 24c7a481c8
commit 4faf5d2b96
11 changed files with 994 additions and 398 deletions
+75 -20
View File
@@ -18,47 +18,102 @@ set -e
# ----------------------------------------------------------------------------------------------
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/../Master.conf"
source "$SCRIPT_DIR/../common.sh"
# Load central config
load_master_conf
# Parse CLI args (flags + VAR=value)
parse_args "$@"
# Optional: MOVER_STOP_TIMEOUT in seconds (default from Master.conf or 30s)
# CONFIG
MOVER_STOP_TIMEOUT=${MOVER_STOP_TIMEOUT:-30}
validate_int MOVER_STOP_TIMEOUT "$MOVER_STOP_TIMEOUT"
# Functions
# STATUS MODE
if [[ "$SHOW_STATUS" == true ]]; then
echo
echo "=================================================="
echo " ️ MOVER STOP STATUS"
echo "--------------------------------------------------"
echo " ⏱ Timeout: ${MOVER_STOP_TIMEOUT}s"
echo " 📡 Dry Run: $DRY_RUN"
echo "=================================================="
exit 0
fi
notify_users() {
wall "⚠️ Unraid Mover will stop in ${MOVER_STOP_TIMEOUT} second(s)."
}
# HEADER
echo
echo "============================================================"
echo " 🚀 MOVER STOP STARTING"
echo "------------------------------------------------------------"
echo " ⏱ Timeout: ${MOVER_STOP_TIMEOUT}s"
echo " 🧪 Dry Run: $DRY_RUN"
echo "============================================================"
log "️ Checking mover status"
# FUNCTIONS
check_mover_running() {
pgrep -f "emhttp.*Mover" >/dev/null 2>&1
}
notify_users() {
warn "🟡 Notifying users: mover stopping soon"
wall "⚠️ Unraid Mover will stop in ${MOVER_STOP_TIMEOUT} second(s)."
}
stop_mover() {
if [ "$DRY_RUN" = true ]; then
echo "[DRY-RUN] Would stop the Mover process"
if [[ "$DRY_RUN" == true ]]; then
warn "🧪 Would stop Unraid Mover process"
return
fi
info "🟡 Stopping Unraid Mover process"
if pkill -f "emhttp.*Mover"; then
info "🟢 Mover stopped successfully"
else
echo "Stopping Mover..."
# Unraid native way: kill the mover process gracefully
pkill -f "emhttp.*Mover"
warn "🔴 Failed to stop mover (may not be running)"
fi
}
# MAIN
echo "==== Mover Stop Script Started: $(date) ===="
# EXECUTION
START_TIME=$(date +%s)
if check_mover_running; then
info "🟡 Mover is running"
notify_users
info "⏱ Waiting ${MOVER_STOP_TIMEOUT}s before stopping"
sleep "$MOVER_STOP_TIMEOUT"
stop_mover
echo "Mover stopped."
else
echo "Mover is not running."
fi
info "🟢 Mover is not running"
fi
# FINALIZE
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
# SUMMARY
echo
echo "============================================================"
if check_mover_running; then
echo " 🟡 MOVER STOP SUMMARY"
echo "------------------------------------------------------------"
echo " ⏱ Duration: ${DURATION}s"
echo " 📡 Status: 🟡 STILL RUNNING OR UNCERTAIN"
else
echo " 🟢 MOVER STOP SUMMARY"
echo "------------------------------------------------------------"
echo " ⏱ Duration: ${DURATION}s"
echo " 📡 Status: 🟢 STOPPED / NOT RUNNING"
fi
echo "============================================================"
info "️ Mover stop operation complete"