All-in-one tool for BES ops and dev tasks.
It manifests as a single binary that can be easily uploaded to Windows machines, or downloaded from the internet, and also works cross-platform on Linux and Mac for many tasks.
See bestool <subcommand> --help
for extensive help.
Current release: 0.17.0
Platform | Variant | Download |
---|---|---|
Windows | x86 | bestool.exe |
Linux | x86 | bestool |
Linux | x86 static | bestool |
Linux | ARM64 | bestool |
Mac | Intel | bestool |
Mac | ARM64 | bestool |
If you already have bestool, it can self-update to the latest version:
$ bestool self-update
The above URLs are for the current release. If you want to always get the latest version, you can use the following URLs:
Platform | Variant | Download |
---|---|---|
Windows | x86 | bestool.exe |
Linux | x86 | bestool |
Linux | x86 static | bestool |
Linux | ARM64 | bestool |
Mac | Intel | bestool |
Mac | ARM64 | bestool |
- name: Download bestool
shell: bash
run: |
curl -Lo ${{ runner.os == 'Windows' && 'bestool.exe' || 'bestool' }} https://tools.ops.tamanu.io/bestool/gha/${{ runner.os }}-${{ runner.arch }}?bust=${{ github.run_id }}
[[ -f bestool ]] && chmod +x bestool
- name: Use bestool
shell: bash
run: |
bestool=bestool
[[ ${{ runner.os }} == "Windows" ]] && bestool=bestool.exe
./$bestool --version # or something more useful
Or combined:
- name: Download bestool
shell: bash
run: |
bestool=bestool
[[ ${{ runner.os }} == "Windows" ]] && bestool=bestool.exe
curl -Lo $bestool https://tools.ops.tamanu.io/bestool/gha/${{ runner.os }}-${{ runner.arch }}?bust=${{ github.run_id }}
[[ -f bestool ]] && chmod +x bestool
./$bestool --version # or something more useful
With Binstall
$ cargo binstall bestool
$ cargo install bestool
Install rust, clone the repo, then run:
$ cargo check
To run the tool:
$ cargo run -- --help
To build the tool like for production:
$ cargo build --release
Commits should follow the Conventional Commits format. Types are listed in the cliff.toml file.
To make a release, install cargo-release and git-cliff, then:
$ git switch main
$ git pull
$ cargo release minor --execute
(or patch
or major
instead of minor
)