68 lines
1.5 KiB
Bash

#!/usr/bin/env bash
if [[ -n "${ATLAS_VALIDATION_SH_LOADED:-}" ]]; then
return 0
fi
ATLAS_VALIDATION_SH_LOADED=1
ATLAS_VALIDATION_PASS=0
ATLAS_VALIDATION_WARNING=0
ATLAS_VALIDATION_FAIL=0
ATLAS_VALIDATION_SKIPPED=0
atlas_validation_reset() {
ATLAS_VALIDATION_PASS=0
ATLAS_VALIDATION_WARNING=0
ATLAS_VALIDATION_FAIL=0
ATLAS_VALIDATION_SKIPPED=0
}
atlas_validation_result() {
local status="$1"
local message="$2"
case "$status" in
PASS)
ATLAS_VALIDATION_PASS=$((ATLAS_VALIDATION_PASS + 1))
;;
WARNING)
ATLAS_VALIDATION_WARNING=$((ATLAS_VALIDATION_WARNING + 1))
;;
FAIL)
ATLAS_VALIDATION_FAIL=$((ATLAS_VALIDATION_FAIL + 1))
;;
SKIPPED)
ATLAS_VALIDATION_SKIPPED=$((ATLAS_VALIDATION_SKIPPED + 1))
;;
*)
status="FAIL"
ATLAS_VALIDATION_FAIL=$((ATLAS_VALIDATION_FAIL + 1))
;;
esac
printf '%-7s %s\n' "$status" "$message"
}
atlas_validation_summary() {
printf 'Summary: PASS=%s WARNING=%s FAIL=%s SKIPPED=%s\n' \
"$ATLAS_VALIDATION_PASS" \
"$ATLAS_VALIDATION_WARNING" \
"$ATLAS_VALIDATION_FAIL" \
"$ATLAS_VALIDATION_SKIPPED"
}
atlas_validation_exit_code() {
if [[ "$ATLAS_VALIDATION_FAIL" -gt 0 ]]; then
return "${ATLAS_EXIT_VALIDATION:-4}"
fi
return 0
}
atlas_bytes_available() {
local path="$1"
df -B1 --output=avail "$path" 2>/dev/null | awk 'NR == 2 {print $1}'
}
atlas_gib_to_bytes() {
local gib="$1"
awk -v gib="$gib" 'BEGIN {printf "%.0f\n", gib * 1024 * 1024 * 1024}'
}