Commit Graph

2 Commits (2ed8af0f5ee2897c96887531b7fdf776f3df1cc2)

Author SHA1 Message Date
Marcus 2ed8af0f5e replace init+apply with a single bootstrap workflow 4 weeks ago
Marcus Kok ce0d506e21
implement Phase 1 + 2: idempotent link, apply command, and install script (#43)
- Rewrite cmd/link.go with safe idempotent logic: skips correct symlinks,
  backs up real files to .dotctl.bak, respects --overwrite and --no-backup
- Add cmd/apply.go: new bootstrap command that clones or pulls a dotfiles
  repo then runs the idempotent link logic with a summary
- Add --overwrite and --no-backup persistent flags to root command
- Remove unstable cmd/sync.go
- Fix cmd/init.go gitignore to not exclude dotctl/config.yml (required
  for apply to work on fresh machines)
- Add install.sh: detects OS/arch, downloads binary from GitHub releases,
  optionally runs dotctl apply <url>
- Update README with Quick Start section covering both bootstrap methods
- Rewrite test/link_test.go with 10 real-filesystem idempotency tests
- Add test/apply_test.go with 5 tests covering dry-run, linking, and
  idempotency
- Fix pre-existing TestInitCommand failure (missing MemMapFs setup)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
4 weeks ago