--- version: '3' tasks: bundle: deps: - grex - htmlq - hyperfine catfs: run: once cmds: - task: install:rust vars: BIN_NAME: catfs PACKAGE: catfs clean: cmds: - rm -rf "$HOME/.cargo/registry" grex: run: once cmds: - task: install:rust vars: BIN_NAME: grex PACKAGE: grex htmlq: run: once cmds: - task: install:rust vars: BIN_NAME: htmlq PACKAGE: htmlq hyperfine: run: once cmds: - task: install:rust vars: BIN_NAME: hyperfine PACKAGE: hyperfine install:rust: vars: BIN: '{{if .BIN_NAME}}{{.BIN_NAME}}{{else}}{{.PACKAGE}}{{end}}' run: when_changed log: error: Failed to install Cargo crate `{{.PACKAGE}}` start: Installing Cargo crate `{{.PACKAGE}}` success: Installed Cargo crate `{{.PACKAGE}}` cmds: - task: :install:software:rust - | if [ -n "$CI" ]; then echo "*************** cargo --> {{.PACKAGE}}"; fi - cargo install {{.PACKAGE}} status: - type {{.BIN}} > /dev/null || [ -n "$NO_INSTALL_RUST" ]