#!/usr/bin/env bash
# Show container and image state.
# Usage: tools/status

# shellcheck source=tools/_common.sh
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/_common.sh"

# -- Container ----------------------------------------------------------------
printf '%b%s%b\n' "$BLU" "Container" "$RST"
state=$(podman inspect "$CONTAINER_NAME" --format '{{.State.Status}}' 2>/dev/null || true)
if [[ -z "$state" ]]; then
    dim "absent"
elif [[ "$state" == "running" ]]; then
    uptime=$(podman inspect "$CONTAINER_NAME" --format '{{.State.StartedAt}}' 2>/dev/null || true)
    info "running (since ${uptime%.*})"
else
    info "$state"
fi

echo

# -- Image --------------------------------------------------------------------
printf '%b%s%b\n' "$BLU" "Image" "$RST"
if podman image exists "$IMAGE_NAME" 2>/dev/null; then
    img_info=$(podman image inspect "$IMAGE_NAME" --format '{{.Created}} {{.Size}}' 2>/dev/null || true)
    created="${img_info%% *}"
    size="${img_info##* }"
    human=$(numfmt --to=iec-i --suffix=B "$size" 2>/dev/null || echo "${size}B")
    info "$IMAGE_NAME ($human, ${created%T*})"
else
    dim "no image"
fi

echo

# -- Volumes ------------------------------------------------------------------
printf '%b%s%b\n' "$BLU" "Mounts" "$RST"
mounts=(src plugins config/derp.toml data secrets)
for m in "${mounts[@]}"; do
    path="$PROJECT_DIR/$m"
    if [[ -e "$path" ]]; then
        info "$m"
    else
        err "$m (missing)"
    fi
done
