#!/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}' }