|
|
|
# load any variables in .env
|
|
|
|
set dotenv-load := true
|
|
|
|
|
|
|
|
# version of rustc used for cargo commands
|
|
|
|
rustc-version := "nightly"
|
|
|
|
|
|
|
|
# name of crate registry to publish versions of this tool to
|
|
|
|
publish-registry := "shipyard-rs-public"
|
|
|
|
|
|
|
|
# env settings exported for cargo settings
|
|
|
|
export RUSTFLAGS := "-C link-arg=-fuse-ld=lld -C target-cpu=native"
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|