452486a782
type: reform
137 lines
2.9 KiB
Makefile
137 lines
2.9 KiB
Makefile
default: watch
|
|
|
|
version := `sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/v\1/p' Cargo.toml | head -1`
|
|
|
|
bt := '0'
|
|
|
|
export RUST_BACKTRACE := bt
|
|
|
|
log := 'warn'
|
|
|
|
export RUST_LOG := log
|
|
|
|
# watch filesystem for changes and rerun tests
|
|
watch +ARGS='':
|
|
cargo watch --clear --exec 'test {{ARGS}}'
|
|
|
|
# show stats about torrents at `PATH`
|
|
stats PATH:
|
|
cargo build --release
|
|
time ./target/release/imdl --unstable torrent stats --input {{PATH}}
|
|
|
|
push:
|
|
! git branch | grep '* master'
|
|
git push github
|
|
|
|
# clean up feature branch BRANCH
|
|
done BRANCH=`git rev-parse --abbrev-ref HEAD`:
|
|
git push github {{BRANCH}}:master
|
|
git rebase github/master master
|
|
git branch -d {{BRANCH}}
|
|
|
|
test:
|
|
cargo test --all
|
|
|
|
clippy:
|
|
cargo clippy --all-targets --all-features
|
|
|
|
fmt:
|
|
cargo +nightly fmt --all
|
|
|
|
lint:
|
|
./bin/lint
|
|
|
|
preview-readme:
|
|
grip -b README.md
|
|
|
|
# build and serve the book
|
|
book:
|
|
mdbook serve book --open --dest-dir ../www/book
|
|
|
|
dev-deps:
|
|
brew install grip
|
|
cargo install mdbook
|
|
cargo install cargo-watch
|
|
npm install --global asciicast2gif
|
|
brew install imagemagick
|
|
brew install gifsicle
|
|
|
|
# update generated documentation
|
|
gen:
|
|
cargo build
|
|
cargo run --package gen -- --bin target/debug/imdl all
|
|
|
|
check-minimal-versions:
|
|
./bin/check-minimal-versions
|
|
|
|
check: test clippy lint check-minimal-versions gen
|
|
git diff --no-ext-diff --quiet --exit-code
|
|
cargo +nightly fmt --all -- --check
|
|
|
|
draft: push
|
|
hub pull-request -o --draft
|
|
|
|
pr: check push
|
|
hub pull-request -o
|
|
|
|
merge BRANCH=`git rev-parse --abbrev-ref HEAD`:
|
|
#!/usr/bin/env bash
|
|
set -euxo pipefail
|
|
while ! hub ci-status --verbose {{BRANCH}}; do
|
|
sleep 5
|
|
done
|
|
just done {{BRANCH}}
|
|
|
|
publish-check: check
|
|
cargo outdated --exit-code 1
|
|
grep '^\[{{version}}\]' target/gen/CHANGELOG.md
|
|
|
|
publish BRANCH=`git rev-parse --abbrev-ref HEAD`: publish-check (merge BRANCH)
|
|
#!/usr/bin/env bash
|
|
set -euxo pipefail
|
|
git tag -a {{version}} -m 'Release {{version}}'
|
|
git push github {{version}}
|
|
while ! hub ci-status --verbose {{BRANCH}}; do
|
|
sleep 5
|
|
done
|
|
cargo publish
|
|
|
|
# record, upload, and render demo animation
|
|
demo: demo-record demo-upload demo-render
|
|
|
|
demo-record:
|
|
#!/usr/bin/env bash
|
|
set -euxo pipefail
|
|
cargo build --release --all
|
|
rm -f tmp/9front.torrent
|
|
asciinema rec \
|
|
--title "Intermodal {{version}} Demo" \
|
|
--command ./target/release/demo \
|
|
--overwrite \
|
|
tmp/demo.json
|
|
|
|
demo-upload:
|
|
asciinema upload tmp/demo.json
|
|
|
|
demo-render:
|
|
../asciicast2gif/asciicast2gif -S4 tmp/demo.json www/demo.gif
|
|
|
|
# print commit metadata types
|
|
commit-types:
|
|
cargo run --package gen -- --bin target/debug/imdl commit-types
|
|
|
|
# open site index
|
|
www:
|
|
open www/index.html
|
|
|
|
# retrieve large collection of torrents from the Internet Archive
|
|
get-torrents:
|
|
aria2c \
|
|
-d dat \
|
|
-x 10 \
|
|
'https://ia802701.us.archive.org/21/items/2014_torrent_archive_organized/torrent_archive_organized.zip'
|
|
|
|
# download bittorrent.org repository
|
|
get-beps:
|
|
git clone git@github.com:bittorrent/bittorrent.org.git tmp/bittorrent.org
|