Repository navigation
feat(install): add curl | sh install script - #914
Merged
Merged
Conversation
Adds a one-line installer for pup that works on macOS, Linux, and Windows (Git Bash/MSYS2/Cygwin). - macOS with Homebrew: runs `brew install datadog-labs/pack/pup` - Otherwise: resolves the latest release (or PUP_VERSION), downloads the matching archive, verifies its SHA-256 against the release checksums file, and installs to PUP_INSTALL_DIR (~/.local/bin) - New Install Script workflow: shellcheck plus install tests on Linux x86_64/arm64, macOS, and Windows, the Homebrew path, and a nonexistent-version failure case - README documents the installer and its environment variables Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Run the installer with `curl ... | sh` instead of requiring bash. - Drop `local` (not POSIX) and the bash shebang - Call `main` without "$@", which posh rejects under `set -u` - Shellcheck in sh mode; CI also installs under dash, posh, and busybox sh - README shows `| sh` Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop the dash/posh/busybox job and the ubuntu arm runner; keep ubuntu-latest, macos-latest, windows-latest, and the Homebrew job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
platinummonkey
marked this pull request as ready for review
October 14, 2026 17:40
Contributor
There was a problem hiding this comment.
On macOS with Homebrew available, the installer silently ignores PUP_VERSION and PUP_INSTALL_DIR, so documented overrides can install the wrong version and location.
🤖 Bits Code Review · Commit 42d53b1
On macOS with Homebrew, the installer took the brew path even when PUP_VERSION or PUP_INSTALL_DIR was set, silently ignoring both. Route explicitly customized installs through the direct download instead. - Skip Homebrew when either override is set - Document the behavior in the script header and README - CI: assert overrides bypass Homebrew on macOS Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jack-edmonds-dd
approved these changes
Oct 14, 2026
platinummonkey
enabled auto-merge
October 14, 2026 17:57
platinummonkey
disabled auto-merge
October 14, 2026 18:21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a one-line installer,
curl -fsSL https://raw.githubusercontent.com/DataDog/pup/main/install.sh | sh, that works on macOS, Linux, and Windows. On macOS it uses Homebrew when available and falls back to a direct download otherwise.Changes
install.sh: new installerbrewon PATH →brew install datadog-labs/pack/pup(unlessPUP_VERSIONorPUP_INSTALL_DIRis set, which Homebrew can't honor)/releases/latestredirect (no rate-limited API call), downloadspup_<ver>_<OS>_<arch>.{tar.gz,zip}, verifies its SHA-256 againstpup_<ver>_checksums.txt(fails closed if the hash is missing or wrong), and installs to~/.local/binaarch64/arm64andx86_64/amd64, detects Rosetta on Apple Silicon, and always uses the x86_64 zip on Windows (the only Windows build published)PUP_VERSION,PUP_INSTALL_DIR,PUP_NO_BREW=1sh(no bashisms). Everything runs frommain, so a truncated download runs nothing.github/workflows/install-script.yml: runs only when the script or workflow changes--shell=sh)ubuntu-latest,macos-latest, andwindows-latest: piped latest install, pinnedv1.27.0, and a nonexistent version that must failPUP_VERSION/PUP_INSTALL_DIRbypass itREADME.md: new "Install Script" sectionTesting
shellcheck --shell=shpasses/bin/shv1.26.0,0.0.0exits 1, truncated script runs nothing, and checksum mismatch / missing checksum both exit 1/bin/bash3.2 withPUP_NO_BREW=1🤖 Generated with Claude Code