Files
microdao-daarion/scripts/docs/session_bootstrap.sh
2026-02-16 02:21:49 -08:00

118 lines
4.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
OUT_DIR="$ROOT_DIR/docs/consolidation"
STAMP="$(date +%Y%m%d-%H%M%S)"
LATEST="$OUT_DIR/INTEGRATIONS_STATUS_LATEST.md"
REPORT="$OUT_DIR/INTEGRATIONS_STATUS_${STAMP}.md"
mkdir -p "$OUT_DIR"
section() {
printf "\n## %s\n\n" "$1"
}
write_status() {
local name="$1"; shift
local status="$1"; shift
local details="$*"
printf -- "- **%s**: %s" "$name" "$status"
if [[ -n "$details" ]]; then
printf " - %s" "$details"
fi
printf "\n"
}
{
printf "# Integrations Bootstrap Status\n\n"
printf "Generated: %s\n\n" "$(date -u '+%Y-%m-%d %H:%M:%S UTC')"
printf "Repo: %s\n\n" "$ROOT_DIR"
section "Gitea"
gitea_code="$(curl -sS -o /dev/null -w '%{http_code}' http://127.0.0.1:3000/ || true)"
if [[ "$gitea_code" == "200" || "$gitea_code" == "302" ]]; then
write_status "gitea_http" "OK" "http_code=$gitea_code (http://127.0.0.1:3000)"
else
write_status "gitea_http" "DEGRADED" "http_code=$gitea_code (http://127.0.0.1:3000)"
fi
gitea_remotes="$(git -C "$ROOT_DIR" remote -v | awk '/gitea/ {print $1" "$2}' | sort -u || true)"
if [[ -n "$gitea_remotes" ]]; then
write_status "gitea_git_remote" "OK" "$(echo "$gitea_remotes" | tr '\n' '; ' | sed 's/; $//')"
else
write_status "gitea_git_remote" "INFO" "no remote URL containing 'gitea' found"
fi
section "GitHub"
if command -v gh >/dev/null 2>&1; then
gh_status="$(gh auth status 2>&1 || true)"
if echo "$gh_status" | rg -q "Logged in to github.com"; then
account_line="$(echo "$gh_status" | awk -F'account ' '/Logged in to github.com account/{print $2}' | head -n1)"
write_status "gh_auth" "OK" "$account_line"
else
write_status "gh_auth" "DEGRADED" "gh installed but not authenticated"
fi
else
write_status "gh_auth" "DEGRADED" "gh CLI not installed"
fi
gh_remotes="$(git -C "$ROOT_DIR" remote -v | awk '/github.com/ {print $1" "$2}' | sort -u || true)"
if [[ -n "$gh_remotes" ]]; then
write_status "github_git_remote" "OK" "$(echo "$gh_remotes" | tr '\n' '; ' | sed 's/; $//')"
else
write_status "github_git_remote" "INFO" "no remote URL containing 'github.com' found"
fi
section "Jupyter"
if command -v jupyter >/dev/null 2>&1; then
jlist="$(jupyter server list 2>/dev/null || true)"
running="$(echo "$jlist" | sed '/^\s*$/d' | wc -l | tr -d ' ')"
write_status "jupyter_cli" "OK" "jupyter found in PATH"
write_status "jupyter_servers" "INFO" "listed_rows=$running"
elif python3 -m jupyter --version >/dev/null 2>&1; then
write_status "jupyter_cli" "OK" "python3 -m jupyter available"
jlist="$(python3 -m jupyter server list 2>/dev/null || true)"
running="$(echo "$jlist" | sed '/^\s*$/d' | wc -l | tr -d ' ')"
write_status "jupyter_servers" "INFO" "listed_rows=$running"
else
write_status "jupyter_cli" "DEGRADED" "jupyter not found in PATH"
fi
nb_dir="/Users/apple/notebooks"
if [[ -d "$nb_dir" ]]; then
nb_count="$(find "$nb_dir" -maxdepth 1 -type f -name '*.ipynb' | wc -l | tr -d ' ')"
write_status "notebooks_dir" "OK" "$nb_dir (ipynb_count=$nb_count)"
else
write_status "notebooks_dir" "DEGRADED" "$nb_dir missing"
fi
section "Pieces"
pext_dir="$HOME/.cursor/extensions"
if [[ -d "$pext_dir" ]]; then
pieces_hits="$(find "$pext_dir" -maxdepth 1 -type d -iname '*pieces*' | wc -l | tr -d ' ')"
if [[ "$pieces_hits" -gt 0 ]]; then
write_status "pieces_extension" "OK" "cursor extensions matched=$pieces_hits"
else
write_status "pieces_extension" "DEGRADED" "no Pieces extension in $pext_dir"
fi
else
write_status "pieces_extension" "DEGRADED" "$pext_dir missing"
fi
pieces_data_dir="$HOME/Library/Application Support/Pieces"
if [[ -d "$pieces_data_dir" ]]; then
write_status "pieces_data_dir" "OK" "$pieces_data_dir"
else
write_status "pieces_data_dir" "INFO" "$pieces_data_dir not found"
fi
section "Next"
printf -- "- Run docs sync dry-run: bash scripts/docs/docs_sync.sh --dry-run\n"
printf -- "- Apply sync to remotes: bash scripts/docs/docs_sync.sh --apply --targets github,gitea\n"
} > "$REPORT"
cp "$REPORT" "$LATEST"
echo "Wrote: $REPORT"
echo "Updated: $LATEST"