# all * clippy * test * build * doc # check * outdated * audit # update * update-toml * update-lock # run * `target/release/{dirname}` ``` target/release/{dirname} ``` # clippy * `Cargo.lock` * `Cargo.toml` * `**/*.rs` ``` cargo clippy -- -D clippy::all ``` # test * `Cargo.lock` * `Cargo.toml` * `**/*.rs` ``` cargo test ``` # bench ``` cargo bench -q 2>&1 |tee benches/report.txt ``` # build * `target/release/{dirname}` # `target/release/{dirname}` * `Cargo.lock` * `Cargo.toml` * `**/*.rs` * `README.md` ``` cargo build --release ``` # `README.md` * `t/README.md` * `Cargo.toml` * `CHANGELOG.md` * `**/*.rs` ``` cargo build --release kapow {0} >{target} ``` # doc ``` cargo doc ``` # outdated ``` cargo outdated --exit-code=1 ``` # audit ``` cargo audit ``` # update-toml ``` cargo upgrade -i ``` # update-lock ``` cargo update ``` # install * `README.md` ``` cargo install --path . ``` # uninstall ``` cargo uninstall {dirname} ``` # install-deps ``` cargo install cargo-audit cargo-edit cargo-outdated cocomo dtg kapow tokei toml-cli ``` # scaffold ```bash -eo pipefail if ! toml get -r Cargo.toml package.description >/dev/null; then toml set Cargo.toml package.description "Insert a description here" >Cargo.toml.new mv Cargo.toml.new Cargo.toml echo Edit package description in Cargo.toml, then rerun \`mkrs scaffold\`. exit 0 fi mkdir -p t if [ ! -e t/README.md ]; then NAME=$(toml get -r Cargo.toml package.name) ABOUT=$(toml get -r Cargo.toml package.description) cat <t/README.md # About $ABOUT # Usage ~~~~text \$ $NAME -V !run:../target/release/$NAME -V 2>&1 ~~~~ ~~~~text \$ $NAME -h !run:../target/release/$NAME -h 2>&1 ~~~~ !inc:../CHANGELOG.md EOF fi if [ ! -e CHANGELOG.md ]; then VERSION=$(toml get -r Cargo.toml package.version) TODAY=$(dtg -n %Y-%m-%d) cat <CHANGELOG.md # Changelog * $VERSION ($TODAY): Initial release EOF fi ``` # clean ``` cargo clean ``` # cocomo ```bash -eo pipefail tokei; echo cocomo -o sloccount cocomo ``` # commit ```bash set -xeo pipefail V=$(toml get -r Cargo.toml package.version) git commit -m "$V" git tag -a "$V" -m "$V" ``` # publish ``` cargo publish git push git push --tags ``` # full * update * check * all * install