Skip to content

implement Phase 1 + 2: idempotent link, apply command#43

Merged
Marcusk19 merged 1 commit intomainfrom
work
Apr 11, 2026
Merged

implement Phase 1 + 2: idempotent link, apply command#43
Marcusk19 merged 1 commit intomainfrom
work

Conversation

@Marcusk19
Copy link
Copy Markdown
Owner

  • 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
  • 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)

…ript

- 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>
@Marcusk19 Marcusk19 merged commit ce0d506 into main Apr 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant