homelab-codex-ws/scripts/lib/state.sh

52 lines
1 KiB
Bash
Raw Permalink Normal View History

2026-05-11 21:20:13 +02:00
#!/usr/bin/env bash
# state.sh - Deployment state management
set_stage() {
local stage=$1
echo "$stage" > "${STATE_DIR}/current_stage"
}
get_stage() {
if [[ -f "${STATE_DIR}/current_stage" ]]; then
cat "${STATE_DIR}/current_stage"
else
echo "none"
fi
}
mark_stage_complete() {
local stage=$1
touch "${STATE_DIR}/stage_${stage}_complete"
}
is_stage_complete() {
local stage=$1
[[ -f "${STATE_DIR}/stage_${stage}_complete" ]]
}
clear_deployment_state() {
rm -f "${STATE_DIR}"/stage_*_complete
rm -f "${STATE_DIR}/current_stage"
rm -f "${STATE_DIR}/last_service"
}
set_last_service() {
echo "$1" > "${STATE_DIR}/last_service"
}
get_last_service() {
if [[ -f "${STATE_DIR}/last_service" ]]; then
cat "${STATE_DIR}/last_service"
else
echo ""
fi
}
export -f set_stage
export -f get_stage
export -f mark_stage_complete
export -f is_stage_complete
export -f clear_deployment_state
export -f set_last_service
export -f get_last_service