intermodal/justfile

134 lines
2.8 KiB
Makefile
Raw Normal View History

2019-05-24 10:25:55 +02:00
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
2019-05-24 10:25:55 +02:00
# watch filesystem for changes and rerun tests
watch +ARGS='':
cargo watch --clear --exec 'test {{ARGS}}'
2019-05-24 10:25:55 +02:00
# show stats about torrents at `PATH`
stats PATH:
cargo build --release
time ./target/release/imdl --unstable torrent stats --input {{PATH}}
push: check
! git branch | grep '* master'
git push github
# clean up feature branch BRANCH
done BRANCH=`git rev-parse --abbrev-ref HEAD`:
git checkout master
git diff --no-ext-diff --quiet --exit-code
git pull --rebase github master
git diff --no-ext-diff --quiet --exit-code {{BRANCH}} --
git branch -D {{BRANCH}}
test:
cargo test --all
clippy:
cargo clippy --all
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
# add git log messages to changelog
changes:
git log --pretty=format:%s >> CHANGELOG.md
dev-deps:
brew install grip
cargo install mdbook
cargo install cargo-watch
npm install --global asciicast2gif
brew install imagemagick
brew install gifsicle
# update readme table of contents
update-toc:
cargo run --package update-readme toc
generate-completions:
./bin/generate-completions
man:
cargo build
help2man \
--name 'BitTorrent metainfo utility' \
--manual 'IMDL MANUAL' \
--no-info \
target/debug/imdl \
> man/imdl.1
sd '📦 ' "\n" man/imdl.1
check-man: man
git diff --no-ext-diff --quiet --exit-code
check-minimal-versions:
./bin/check-minimal-versions
check: test clippy lint check-minimal-versions
git diff --no-ext-diff --quiet --exit-code
cargo +nightly fmt --all -- --check
cargo run --package update-readme toc
git diff --no-ext-diff --quiet --exit-code
pr: push
hub pull-request -o
publish-check: check check-man
cargo outdated --exit-code 1
grep {{version}} CHANGELOG.md
publish: publish-check
git branch | grep '* master'
git tag -a {{version}} -m 'Release {{version}}'
git push github {{version}}
cargo publish
# record demo animation
record:
#!/usr/bin/env bash
set -euxo pipefail
cargo build --release --all
rm -f tmp/9front.torrent
asciinema rec \
--command ./target/release/demo \
--overwrite \
tmp/demo.json
asciinema upload tmp/demo.json
asciicast2gif tmp/demo.json www/demo.gif
# open site index
www:
open www/index.html
2019-05-24 10:25:55 +02:00
# 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