Skip to content

beyondessential/bestool

bestool

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.

Download

Platform Variant Download
Windows x86 bestool.exe
Linux x86 bestool
Linux x86 static bestool
Linux ARM64 bestool
Mac Intel bestool
Mac ARM64 bestool

These URLs always point to the latest release. Pin to a specific version with https://tools.ops.tamanu.io/bestool/<version>/<target>/bestool.

Self-update

If you already have bestool, it can self-update to the latest version:

$ bestool self-update

APT repository

If you're on Debian or a derivative, you can use our APT repo:

curl -fsSL https://tools.ops.tamanu.io/apt/bes-tools.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/bes-tools.gpg
echo "deb [signed-by=/etc/apt/keyrings/bes-tools.gpg] https://tools.ops.tamanu.io/apt stable main" | sudo tee /etc/apt/sources.list.d/bes-tools.list
sudo apt-get update
sudo apt-get install bestool

In GitHub Actions

- 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
$ cargo binstall bestool

With cargo (compiling)

$ cargo install bestool

Development

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.

About

Custom BES command-line tool for all our purposes

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages