52 lines
1 KiB
Bash
52 lines
1 KiB
Bash
|
|
#!/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
|