feat: add one-line installer and service manager #524
No reviewers
Labels
No labels
backend
bug
chore
duplication
effort:complex
effort:medium
effort:trivial
enhancement
follow-up
frontend
fullstack
priority:high
ready-for-agent
refactor
security
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
dries/ocman!524
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/install-script"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
curl -fsSL .../install.sh | bash -s -- install— checks the toolchain (git, go, node, pnpm; warns on tmux/opencode/lsof), shallow-clones to~/.local/share/ocman/src, builds frontend + binary, installs to~/.local/bin/ocman, and starts it in the background.The same script installs itself as
ocman-ctl, so the manager commands come for free:Process tracking is a pidfile under
~/.local/state/ocman, validated against the live process's args so a recycled pid can never be SIGTERM'd bystop.scripts/install_test.shexercises that lifecycle (double start/stop, stale pidfile, foreign pid) against a fake binary — no network, no build.Deliberately left out, per YAGNI: no launchd/systemd unit (so no reboot persistence), no prebuilt-binary fast path, no auto-install of go/pnpm, no Go version parsing (GOTOOLCHAIN fetches the pinned toolchain).
Coverage ratchet: ✅ pass
Tolerance: -0.1%. Baseline stored on
gh-pages.