#!/usr/bin/env bash
# backup/list -- what exists, how big, how old
set -o pipefail
SELF=$(readlink -f "${BASH_SOURCE[0]}")
NV_BASE=$(cd "$(dirname "$SELF")/../../.." && pwd)
export NV_BASE
# shellcheck source=/dev/null
. "$NV_BASE/lib/core/bootstrap.sh"

ui_header "$(t backup_m_list)" "$NV_BACKUP_ROOT"

if [ ! -d "$NV_BACKUP_ROOT" ]; then
    ui_info "$(t backup_none)"
    exit 0
fi

printf '  %-22s %-14s %-8s %s\n' "$(t backup_set)" "$(t backup_kind)" "$(t col_size)" "$(t backup_files)"
count=0
for d in $(ls -1d "$NV_BACKUP_ROOT"/*/ 2>/dev/null | sort -r); do
    [ -d "$d" ] || continue
    name=$(basename "$d")
    stamp=${name%%.*}
    kind=${name#*.}
    [ "$kind" = "$name" ] && kind='-'
    size=$(du -sh "$d" 2>/dev/null | cut -f1)
    files=$(find "$d" -maxdepth 1 -type f | wc -l)
    printf '  %-22s %-14s %-8s %s\n' "$stamp" "$kind" "$size" "$files"
    count=$((count + 1))
    [ "$count" -ge 20 ] && break
done

if [ "$count" -eq 0 ]; then
    ui_info "$(t backup_none)"
else
    ui_blank
    ui_kv "$(t backup_total)" "$(du -sh "$NV_BACKUP_ROOT" 2>/dev/null | cut -f1)"
    ui_kv "$(t backup_keep_days)" "$(nv_conf backup_keep_days 14)"
fi
ui_blank
exit 0
