Skip to content

Conversation

@SmileyChris
Copy link

Summary

  • Adds apppack version check to check for available updates
  • Adds apppack version update to download and install the latest release from GitHub
  • Adds --force flag to update even when already on latest version

Features

  • Cross-platform support (Linux, macOS Intel/ARM, Windows)
  • SHA256 checksum verification before binary replacement
  • Blocks Homebrew installs with helpful brew upgrade apppack message
  • Safe binary replacement with atomic rename and cross-device fallbacks

Test plan

  • apppack version still shows current version
  • apppack version check reports if update is available
  • apppack version update downloads and installs latest release
  • apppack version update --force updates even if current
  • Homebrew installs show appropriate message instead of updating

Adds `apppack version check` to check for available updates and
`apppack version update` to download and install the latest release
from GitHub.

Features:
- Cross-platform support (Linux, macOS Intel/ARM, Windows)
- SHA256 checksum verification before binary replacement
- Blocks Homebrew installs with helpful upgrade message
- Safe binary replacement with atomic rename and fallbacks
- --force flag to update even when already on latest version
Use io.CopyN with a 100MB limit instead of io.Copy when extracting
binaries from archives to prevent decompression bomb attacks.

Addresses GO-S2110 (CWE-409)
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