A command-line tool for crate registry backup/export
https://shipyard.rs
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.9 KiB
63 lines
1.9 KiB
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 |
|
|
|
|