Commit Graph

3 Commits

Author SHA1 Message Date
261fcfbec7 fix: improve correctness and safety
Pass 2 (Correctness & Safety):
- Separate stdout/stderr in apk list and search to prevent error messages
  from contaminating parsed output
- All providers verified: mutex on mutating ops, CommandContext everywhere,
  proper error wrapping, nil-safe parseInfo functions
2026-02-26 01:27:41 +00:00
0d6c5d9e17 feat: add per-provider mutex and Target-aware implementations
- Add snack.Locker embed for per-provider mutex serialization
- Update all providers (pacman, apk, apt, dpkg) to use []Target
  with version pinning support (pkg=version syntax)
- Add lock/unlock to all mutating operations (Install, Remove, Purge,
  Upgrade, Update)
- Add snack.TargetNames helper and formatTargets per provider
- apt: add FromRepo (-t) and Reinstall support
- dpkg: use Target.Source for .deb file paths in Install
2026-02-25 20:35:45 +00:00
6480c1142d feat(apk): implement apk-tools package manager wrapper
Implements the snack.Manager interface for Alpine Linux's apk-tools:
- Install, Remove, Purge, Upgrade, Update operations
- List installed, Search, Info, IsInstalled, Version queries
- Output parsing for apk list, search, and info formats
- Linux-only implementation with build-tag stubs for other platforms
- Options support: WithSudo, WithDryRun, WithRoot
- Tests for all output parsing functions
2026-02-25 20:24:10 +00:00