Skip to content

Custom BES command-line tool for all our purposes

License

Notifications You must be signed in to change notification settings

beyondessential/bestool

Repository files navigation

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

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

Self-update

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

$ bestool self-update

Always-latest URLs

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

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. Types are listed in the cliff.toml file.

Releasing

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)

About

Custom BES command-line tool for all our purposes

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published