#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
POSTGRES_URL="${SECAFS_POSTGRES_URL:-postgres://secafs:secafs@127.0.0.1:5432/test1}"
CLI="${ROOT_DIR}/cli/target/debug/secafs"
if [ ! -x "${CLI}" ]; then
echo "==> 构建 CLI (no-default-features)..."
cargo build --manifest-path "${ROOT_DIR}/cli/Cargo.toml" --no-default-features
fi
echo "==> 使用数据库: ${POSTGRES_URL}"
echo ""
echo "==> 1) 检查/迁移 schema: secafs migrate"
"${CLI}" migrate "${POSTGRES_URL}"
echo ""
echo "==> 2) 列出根目录: secafs fs <URL> ls /"
timeout 12 "${CLI}" fs "${POSTGRES_URL}" ls / 2>&1 || echo "(若超时:可改用平台或 Python SDK 操作 test1)"
echo ""
echo "==> 3) 写入文件: secafs fs <URL> write /demo/hello.txt '...'"
timeout 12 "${CLI}" fs "${POSTGRES_URL}" write /demo/hello.txt "Hello from CLI demo at $(date -Isec)" 2>&1 || echo "(若超时:可改用 Python SDK)"
echo ""
echo "==> 4) 读取文件: secafs fs <URL> cat /demo/hello.txt"
timeout 12 "${CLI}" fs "${POSTGRES_URL}" cat /demo/hello.txt 2>&1 || true
echo ""
echo "==> 5) 再次列出根目录"
timeout 12 "${CLI}" fs "${POSTGRES_URL}" ls / 2>&1 || true
echo ""
echo "==> 6) 时间线: secafs timeline <URL>"
timeout 12 "${CLI}" timeline "${POSTGRES_URL}" --limit 5 2>&1 || true
echo ""
echo "==> 演示结束。migrate 已确认可用;若 fs/timeline 超时,可改用平台 Web 界面或 Python SDK 操作同一 test1 数据库。"