[package]
edition = "2024"
name = "bestool"
version = "1.5.1"
authors = [
"Félix Saparelli <felix@passcod.name>",
"BES Developers <contact@bes.au>",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "bestool"
description = "BES Deployment tooling"
readme = false
keywords = [
"bes",
"tamanu",
"tupaia",
]
categories = ["command-line-utilities"]
license = "GPL-3.0-or-later"
repository = "https://github.com/beyondessential/bestool"
resolver = "2"
[package.metadata.binstall]
pkg-url = "https://tools.ops.tamanu.io/bestool/{ version }/{ target }/{ name }{ binary-ext }"
pkg-fmt = "bin"
[features]
__iti = ["dep:zmq"]
__tamanu = [
"dep:dirs",
"dep:glob",
"dep:itertools",
"dep:json5",
"dep:leon-macros",
"dep:leon",
"dep:node-semver",
"dep:regex",
]
caddy = [
"download",
"dep:tera",
]
completions = [
"dep:clap_complete",
"dep:clap_complete_nushell",
]
crypto = [
"dep:algae-cli",
"dep:blake3",
"dep:merkle_hash",
]
default = [
"caddy",
"completions",
"crypto",
"self-update",
"ssh",
"tamanu",
]
download = [
"dep:binstalk-downloader",
"dep:detect-targets",
"dep:hickory-resolver",
]
file = [
"dep:blake3",
"dep:indicatif",
"dep:tokio-util",
]
iti = [
"iti-battery",
"iti-lcd",
"iti-temperature",
]
iti-battery = [
"__iti",
"dep:folktime",
"dep:humantime",
"dep:rppal",
]
iti-lcd = [
"__iti",
"dep:ctrlc",
"dep:embedded-graphics",
"dep:rpi-st7789v2-driver",
"dep:sysinfo",
]
iti-temperature = [
"__iti",
"dep:duct",
"dep:humantime",
]
self-update = [
"download",
"dep:upgrade",
"dep:windows-env",
]
ssh = [
"dep:dirs",
"dep:duct",
"dep:fs4",
"dep:ssh-key",
"dep:privilege",
"dep:windows-acl",
]
tamanu = [
"tamanu-alerts",
"tamanu-alertd",
"tamanu-artifacts",
"tamanu-backup",
"tamanu-backup-configs",
"tamanu-config",
"tamanu-url",
"tamanu-download",
"tamanu-find",
"tamanu-greenmask",
"tamanu-meta-ticket",
"tamanu-psql",
]
tamanu-alertd = [
"__tamanu",
"tamanu-config",
"dep:bestool-alertd",
"dep:serde_path_to_error",
"dep:serde_yaml",
"dep:walkdir",
]
tamanu-alerts = [
"__tamanu",
"tamanu-config",
"dep:folktime",
"dep:humantime",
"dep:mailgun-rs",
"dep:pulldown-cmark",
"dep:serde_path_to_error",
"dep:serde_yaml",
"dep:sysinfo",
"dep:tera",
"dep:tokio-postgres",
"dep:walkdir",
]
tamanu-artifacts = [
"__tamanu",
"dep:comfy-table",
"dep:detect-targets",
"dep:target-tuples",
]
tamanu-backup = [
"__tamanu",
"file",
"tamanu-config",
"dep:bestool-psql",
"dep:algae-cli",
"dep:duct",
]
tamanu-backup-configs = [
"__tamanu",
"tamanu-backup",
"dep:walkdir",
"dep:zip",
]
tamanu-config = ["__tamanu"]
tamanu-download = [
"__tamanu",
"download",
]
tamanu-find = ["__tamanu"]
tamanu-greenmask = [
"__tamanu",
"tamanu-config",
"dep:bestool-psql",
"dep:dunce",
"dep:serde_yaml",
"dep:walkdir",
]
tamanu-meta-ticket = [
"__tamanu",
"tamanu-config",
"dep:base64",
"dep:bestool-psql",
"dep:p256",
"dep:sysinfo",
]
tamanu-psql = [
"__tamanu",
"tamanu-config",
"dep:bestool-psql",
]
tamanu-upgrade = []
tamanu-url = [
"__tamanu",
"tamanu-config",
"dep:percent-encoding",
]
walg = []
[lib]
name = "bestool"
path = "src/lib.rs"
[[bin]]
name = "bestool"
path = "src/main.rs"
[[test]]
name = "cli_tests"
path = "tests/cli_tests.rs"
[[test]]
name = "fixture_pg"
path = "tests/fixture_pg.rs"
[dependencies.algae-cli]
version = "1.0.16"
optional = true
[dependencies.base64]
version = "0.22.1"
optional = true
[dependencies.bestool-alertd]
version = "1.1.0"
optional = true
default-features = false
[dependencies.bestool-psql]
version = "1.4.2"
optional = true
default-features = false
[dependencies.binstalk-downloader]
version = "0.13.36"
features = ["hickory-dns"]
optional = true
[dependencies.blake3]
version = "1.8.2"
optional = true
[dependencies.boxcar]
version = "0.2.14"
[dependencies.bytes]
version = "1.10.0"
[dependencies.chrono]
version = "0.4.41"
[dependencies.clap]
version = "4.5.47"
features = [
"cargo",
"derive",
"wrap_help",
"env",
"unicode",
"string",
]
[dependencies.clap-markdown]
version = "0.1.5"
[dependencies.clap_complete]
version = "4.5.57"
optional = true
[dependencies.clap_complete_nushell]
version = "4.5.8"
optional = true
[dependencies.comfy-table]
version = "7.2.0"
optional = true
[dependencies.ctrlc]
version = "3.5.0"
optional = true
[dependencies.detect-targets]
version = "0.1.73"
optional = true
[dependencies.dirs]
version = "6.0.0"
optional = true
[dependencies.duct]
version = "1.1.0"
optional = true
[dependencies.dunce]
version = "1.0.5"
optional = true
[dependencies.embedded-graphics]
version = "0.8.1"
optional = true
[dependencies.folktime]
version = "0.2.1"
optional = true
[dependencies.fs4]
version = "0.13.1"
features = ["tokio"]
optional = true
[dependencies.futures]
version = "0.3.30"
[dependencies.glob]
version = "0.3.3"
optional = true
[dependencies.hickory-resolver]
version = "0.25.2"
optional = true
[dependencies.humantime]
version = "2.2.0"
optional = true
[dependencies.indicatif]
version = "0.18.2"
features = ["tokio"]
optional = true
[dependencies.itertools]
version = "0.14.0"
optional = true
[dependencies.jiff]
version = "0.2.15"
[dependencies.json5]
version = "1.3.0"
optional = true
[dependencies.leon]
version = "3.0.1"
optional = true
[dependencies.leon-macros]
version = "1.0.2"
optional = true
[dependencies.lloggs]
version = "1.1.0"
[dependencies.mailgun-rs]
version = "2.0.2"
optional = true
[dependencies.merkle_hash]
version = "3.8.0"
optional = true
[dependencies.miette]
version = "7.6.0"
features = ["fancy"]
[dependencies.mimalloc]
version = "0.1.48"
[dependencies.node-semver]
version = "2.2.0"
optional = true
[dependencies.p256]
version = "0.13.2"
features = [
"pkcs8",
"pem",
]
optional = true
[dependencies.percent-encoding]
version = "2.3.1"
optional = true
[dependencies.privilege]
version = "0.3.0"
optional = true
[dependencies.pulldown-cmark]
version = "0.13.0"
optional = true
[dependencies.regex]
version = "1.11.2"
optional = true
[dependencies.reqwest]
version = "0.13.2"
features = ["json"]
[dependencies.rpi-st7789v2-driver]
version = "0.3.10"
features = ["miette"]
optional = true
[dependencies.rppal]
version = "0.22.1"
optional = true
[dependencies.serde]
version = "1.0.219"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.143"
[dependencies.serde_path_to_error]
version = "0.1.17"
optional = true
[dependencies.serde_yaml]
version = "0.9.33"
optional = true
[dependencies.ssh-key]
version = "0.6.6"
optional = true
[dependencies.sysinfo]
version = "0.38.4"
optional = true
[dependencies.target-tuples]
version = "0.16.0"
optional = true
[dependencies.tempfile]
version = "3.21.0"
[dependencies.tera]
version = "1.19.1"
optional = true
[dependencies.thiserror]
version = "2.0.16"
[dependencies.tokio]
version = "1.47.1"
features = ["full"]
[dependencies.tokio-postgres]
version = "0.7.13"
features = [
"with-chrono-0_4",
"with-uuid-1",
]
optional = true
[dependencies.tokio-util]
version = "0.7.16"
optional = true
[dependencies.tracing]
version = "0.1.43"
features = ["attributes"]
[dependencies.upgrade]
version = "2.0.1"
optional = true
[dependencies.uuid]
version = "1.19.0"
features = ["v4"]
[dependencies.walkdir]
version = "2.5.0"
optional = true
[dependencies.zip]
version = "8.2.0"
features = ["time"]
optional = true
default-features = false
[dependencies.zmq]
version = "0.10.0"
optional = true
[dev-dependencies.trycmd]
version = "1.1.1"
[build-dependencies.windows_exe_info]
version = "0.5.2"
features = ["manifest"]
[target."cfg(windows)".dependencies.windows-acl]
version = "0.3.0"
optional = true
[target."cfg(windows)".dependencies.windows-env]
version = "0.2.0"
optional = true
[lints.rust]
unsafe_code = "forbid"
[lints.rust.rust_2018_idioms]
level = "deny"
priority = -1