Commit Graph

2 Commits

Author SHA1 Message Date
Claude 61b472bbe8 Swap in richer progress UI; fix fzf preview to use docker label filter
docker-update (Python):
- Add compose_binary detection (docker compose v2 plugin or legacy docker-compose)
- is_git_repo() now uses `git -C dir rev-parse` instead of .git dir check
- Rich runner: Panel header showing project count / git / registry split,
  per-project sub-task with step labels (git pull, down, pull, up --build…),
  BarColumn(30) + TimeElapsedColumn, bold summary line
- Plain runner: same header line, passes compose_cmd through
- Summary uses bold green/yellow/red instead of plain colours
- All update functions accept compose_cmd parameter

docker-update-fzf (Bash):
- project_status_by_name(): check running state via
  `docker ps --filter label=com.docker.compose.project=NAME` — works from
  any directory, no workdir required
- Preview script rebuilt: shows container table + per-container logs via
  docker ps/logs --filter label=…, includes stopped containers fallback
- show_action_menu() now uses project_status_by_name() for live dot / actions
- Trap extended to INT/TERM for cleaner SSH exit

https://claude.ai/code/session_01LtPxA1zDET2JQn6NYDDxKn
2026-04-11 10:51:27 +00:00
Claude 6c8206d2f6 Initial implementation: docker-update + docker-update-fzf
Rebuilt as a hybrid Python + Bash project to fix TTY/fzf conflicts over SSH.

Python (docker-update):
- `docker-update`        — update all stacks with Rich progress (plain fallback)
- `docker-update log`    — exec into fzf helper, or plain-text fallback with warning
- `docker-update debug`  — dry-run discovery + optional fzf demo with fake data
- Writes .log + .json sidecar per run to /var/log/docker-update/
- Summary line + "docker-update log" hint printed after every update run

Bash (docker-update-fzf):
- Level 1: log-file picker (fzf, newest first, preview shows log content)
- Level 2: project browser grouped by outcome (✓ ⚠ ✗) with live ●/○ status dots
           and live docker compose logs in preview pane
- Level 3: context-aware action menu (Start / Update / Stop)
- Proper < /dev/tty TTY handling throughout — no freezes over SSH
- Debug mode — all actions print what they would run but execute nothing
- Rich and fzf both have plain-text fallbacks with upfront user warning
- Temp files cleaned up via EXIT trap

README.md explains dependencies, installation paths, and usage.

https://claude.ai/code/session_01LtPxA1zDET2JQn6NYDDxKn
2026-04-11 10:38:02 +00:00