set dotenv-load := true rustc-version := "nightly" publish-registry := "shipyard-rs-public" # complicated/ugly one-liner to use lld linker if it's available export RUSTFLAGS := `LLD=$(which lld) && test $? -eq "0" && echo "-C link-arg=-fuse-ld=lld" || echo ''` # cargo wrapper; executes a cargo command using the settings in justfile (RUSTFLAGS, etc.) cargo +args='': cargo +{{rustc-version}} {{args}} # cargo check wrapper check +args='': @just cargo check {{args}} # cargo test wrapper test +args='': just cargo test {{args}} # cargo build wrapper - builds registry-backup in debug mode debug-build +args='': @just cargo build --bin registry-backup {{args}} # cargo build --release wrapper - builds registry-backup in release mode release-build +args='': @just cargo build --bin registry-backup --release {{args}} # generate updated README.md generate-readme: just debug-build ./target/debug/registry-backup --help > doc/cli-menu.txt just --list > doc/just-commands.txt just cargo run --bin generate-readme --features docs > README.md # check, run tests, check non-error output for clippy, run rustfmt pre-release: just cargo check \ && just cargo test \ && just cargo clippy \ && just cargo fmt # verify no uncommitted changes verify-clean-git: test "$(echo `git status --porcelain` | wc -c)" -eq "1" get-crate-version: cat Cargo.toml | rg '^version =' | tr -d "version = " | tr -d '"' release-prep: verify-clean-git pre-release VERSION=$(just get-crate-version) \ && test -z "$(git tag | rg \"v${VERSION}\")" # Error: tag appears to exist already just update-readme # re-generate README.md and commit changes update-readme: verify-clean-git just generate-readme git add README.md doc/*.txt git commit -m 're-generate docs' release: release-prep git tag "v$(just get-crate-version)" git push && git push --tags