#!/usr/bin/env bash

set -u

script_dir=$(CDPATH= cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
CFS_PACKAGE_DIR=$script_dir
# shellcheck source=cfsv2_manual.conf
source "${script_dir}/cfsv2_manual.conf"

status=0

check_command() {
    if command -v "$1" >/dev/null 2>&1; then
        printf '[OK]      command: %s -> %s\n' "$1" "$(command -v "$1")"
    else
        printf '[MISSING] command: %s\n' "$1"
        status=1
    fi
}

check_path() {
    label=$1
    path=$2
    if [[ -e $path ]]; then
        printf '[OK]      %-14s %s\n' "$label:" "$path"
    else
        printf '[MISSING] %-14s %s\n' "$label:" "$path"
        status=1
    fi
}

printf 'Writable review locations\n'
printf '  package : %s\n' "$CFS_PACKAGE_DIR"
printf '  data    : %s\n' "$CFS_DATA_ROOT"
printf '  logs    : %s\n' "$CFS_LOG_ROOT"
printf '  model   : %s (execution deliberately disabled)\n\n' "$MODEL_MODE"

printf 'Required download commands\n'
for name in bash curl date grep realpath sort wc wget; do
    check_command "$name"
done

printf '\nRead-only production references\n'
check_path "CLWRF config" "$CLWRF_CONFIG"
check_path "RegCM config" "$REGCM_CONFIG"
check_path "CLWRF CFS" "$CLWRF_CFS_DIR"
check_path "RegCM CFS" "$REGCM_CFS_DIR"
check_path "WRF model" "$WRF_DIR"
check_path "WPS" "$WPS_DIR"
check_path "RegCM model" "$REGCM_DIR"

exit "$status"

