ptinstall

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 22, 2026 License: MIT Imports: 8 Imported by: 0

README

ptinstall

One bootstrap command for Plumtree:

go run github.com/Ceinl/ptinstall@latest

With no arguments, ptinstall opens an interactive setup that can install or update pt, run the Plumtree server in the foreground, install the server binary, or diagnose the local installation.

The same operations are available as scriptable commands:

go run github.com/Ceinl/ptinstall@latest -- pt install
go run github.com/Ceinl/ptinstall@latest -- server run
go run github.com/Ceinl/ptinstall@latest -- server install
go run github.com/Ceinl/ptinstall@latest -- doctor

Pin a Plumtree release when reproducibility matters:

go run github.com/Ceinl/ptinstall@latest -- pt install --version v0.2.0
go run github.com/Ceinl/ptinstall@latest -- server run --version v0.2.0 -- -addr :8080

Design

ptinstall is deliberately thin. Plumtree owns its builds, tests, runtime configuration, and releases; this repository owns platform detection, interactive setup, verified downloads, installation, and foreground process launching.

It does not build Plumtree from source or bake server credentials into public binaries. It downloads versioned GitHub Release assets, verifies their SHA-256 checksums, and atomically installs them into GOBIN or GOPATH/bin.

Tailscale is not required. Networking and authentication remain Plumtree server configuration concerns and can be added as optional setup adapters later.

Plumtree release contract

Every Plumtree release consumed by this installer must contain:

checksums.txt
pt-darwin-amd64
pt-darwin-arm64
pt-linux-amd64
pt-linux-arm64
pt-windows-amd64.exe
plumtree-server-darwin-amd64
plumtree-server-darwin-arm64
plumtree-server-linux-amd64
plumtree-server-linux-arm64
plumtree-server-windows-amd64.exe

checksums.txt uses the standard format:

<sha256>  <asset-name>

The release repository defaults to Ceinl/plumtree. It can be overridden for forks and integration tests:

PTINSTALL_REPOSITORY=owner/repository go run . doctor

Private repositories can use GITHUB_TOKEN.

Development

go run .
go test -race ./...
go vet ./...

CI checks formatting, vetting, race-enabled tests, and supported-platform builds on every pull request and push to main.

Releasing

ptinstall is distributed as Go source, so its releases do not contain binary assets. Create an annotated semantic-version tag and push it:

git switch main
git pull --ff-only
git tag -a v0.1.0 -m "ptinstall v0.1.0"
git push origin v0.1.0

The release workflow tests the tagged source and creates a GitHub release with generated notes. Go's module proxy then makes the highest release tag available through go run github.com/Ceinl/ptinstall@latest. Use a new tag for every published change; do not move or reuse an existing tag.

The public go run ...@latest command will work after this repository is created on GitHub and receives its first version tag. Until Plumtree publishes the release contract above, installation commands intentionally fail rather than accepting an unverified or incomplete artifact.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL