superstack is the command line interface to Superstack: sign in, claim
devices, push Lua code, and stream logs from your fleet. It is a single static
binary talking to the Superstack server's JSON API.
-
macOS, with Homebrew:
brew install --cask siliconwitchery/tap/superstack # install brew upgrade --cask superstack # update
-
Windows, with Scoop and git:
scoop bucket add siliconwitchery https://github.com/siliconwitchery/scoop-bucket scoop install superstack # install scoop update superstack # update
-
Arch Linux, from the AUR:
yay -S superstack-bin # install and update -
NixOS, with Nix
nix-commandandflakesenabled:nix profile install github:siliconwitchery/superstack-cli#superstack # install nix profile upgrade superstack # update
-
Any platform. Download an archive from the releases page, unpack it, and move
superstackonto yourPATH. Repeat to update.
-
Install the toolchain:
-
Clone the repository:
git clone git@github.com:siliconwitchery/superstack-cli.git ~/projects/superstack-cli cd ~/projects/superstack-cli
-
Build and run:
CGO_ENABLED=0 go build -o superstack . ./superstack
-
Create
devfresh frommain:git fetch origin git switch -C dev origin/main
-
Change
versioninmain.go, run the checks, commit, and push:CGO_ENABLED=0 go vet ./... CGO_ENABLED=0 go test ./... git diff --check git add main.go git commit -m "Version <version>" git push -u origin dev
-
Open the
devpull request, review it, and merge it with squash. -
Return to
main, remove the stale branch, and tag the commit that merging created:git switch main git pull --ff-only git branch -D dev tag="v$(sed -n 's/^const version = "\(.*\)"$/\1/p' main.go)" git tag "$tag" && git push origin "$tag"
-
Write the release notes into the empty release body on GitHub.
A prerelease suffix, v0.0.2-rc1, skips every package manager. Tags cannot be
moved or deleted.