Installation
Install the prebuilt binary or build CubeAPM CLI from source.
Install script (recommended)
Installs the latest prebuilt binary for your supported OS and architecture:
curl -sSfL https://raw.githubusercontent.com/piyush-gambhir/cubeapm-cli/main/install.sh | shPin a version or change the install directory:
curl -sSfL https://raw.githubusercontent.com/piyush-gambhir/cubeapm-cli/main/install.sh | VERSION=0.2.7 sh
curl -sSfL https://raw.githubusercontent.com/piyush-gambhir/cubeapm-cli/main/install.sh | INSTALL_DIR=~/.local/bin shThe installer supports macOS and Linux on amd64 and arm64. It downloads
cubeapm-cli_<os>_<arch>.tar.gz from the selected GitHub release and installs
the cubeapm binary into /usr/local/bin by default.
Download a release manually
Prebuilt archives are attached to each
GitHub Release. Extract
the archive for your platform and place cubeapm (cubeapm.exe on Windows) on
your PATH.
Build from source
Use a Go toolchain compatible with cli-go/go.mod:
git clone https://github.com/piyush-gambhir/cubeapm-cli.git
cd cubeapm-cli/cli-go
make installmake install names the executable cubeapm and includes the current checkout's
version metadata. Set INSTALL_DIR to choose a destination:
make install INSTALL_DIR="$HOME/.local/bin"Verify
cubeapm versionUpdate
cubeapm update installs the latest release on macOS, Linux, and Windows:
cubeapm update --check # report current and latest versions
cubeapm update --check -o json # the same, as JSON
cubeapm update # ask "Update now? [Y/n]", then install
cubeapm update --yes # install without askingIt downloads the release archive for your platform, verifies its SHA-256
checksum against the release's checksums.txt, and replaces the binary in
place. On Windows the running cubeapm.exe is renamed to cubeapm.exe.old
(deleted on a later run) and the new one takes its place. If the binary's
directory is not writable, update fails and leaves the current binary
untouched: re-run it with sudo, or reinstall with the install script into a
writable directory. Under --no-input, or without a terminal, it needs
--yes.
A binary that make install put in a Go bin directory ($GOBIN,
$GOPATH/bin, or ~/go/bin) is not replaced; update it from your checkout
with git pull && make install.
Update notice
In an interactive terminal, cubeapm checks GitHub for a new release at most once a day, in the background, and prints a notice on stderr after the command's output, at most once a day per release. On the run that checks, the command waits at most 1 second for GitHub, so a fast command still shows the notice:
A new version of cubeapm is available: v<current> -> v<latest>
Update with: cubeapm update
Release notes: https://github.com/piyush-gambhir/cubeapm-cli/releases/tag/v<latest>There is no check, and no network request, when stderr is not a terminal, when
CI is set, with --quiet or CUBEAPM_QUIET, or when
CUBEAPM_NO_UPDATE_NOTIFIER=1 or NO_UPDATE_NOTIFIER=1 is set. Scripts, CI
jobs, and coding agents never see it. To turn it off everywhere:
export CUBEAPM_NO_UPDATE_NOTIFIER=1