Skip to content

Commit

Permalink
Add groups, docs to repo justfile
Browse files Browse the repository at this point in the history
  • Loading branch information
neunenak committed Sep 7, 2024
1 parent 90ae09b commit 5717ade
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,63 +13,87 @@ export JUST_LOG := log
watch +args='test':
cargo watch --clear --exec '{{ args }}'

[group: "testing"]
[doc: "Run just test suite"]
test:
cargo test

ci: lint build-book
cargo test --all

# Run lint checks
[group: "code-checking"]
lint:
cargo clippy --all --all-targets -- --deny warnings
./bin/forbid
cargo fmt --all -- --check
cargo update --locked --package just

[group: "testing"]
[doc: "Run fuzz tests"]
fuzz:
cargo +nightly fuzz run fuzz-compiler

# `cargo run`
run:
cargo run

# only run tests matching PATTERN
[group: "testing"]
filter PATTERN:
cargo test {{PATTERN}}

# Build just
[group: "developer-workflow"]
build:
cargo build

[group: "code-checking"]
fmt:
cargo fmt --all

[group: "code-checking"]
[doc: "Run shellcheck command on .sh files"]
shellcheck:
shellcheck www/install.sh

# Generate the just manpage
[group: "documentation"]
man:
mkdir -p man
cargo run -- --man > man/just.1

# View the Just manpage
[group: "documentation"]
view-man: man
man man/just.1

# add git log messages to changelog
[group: "developer-workflow"]
update-changelog:
echo >> CHANGELOG.md
git log --pretty='format:- %s' >> CHANGELOG.md

# Update the contributors file
[group: "developer-workflow"]
update-contributors:
cargo run --release --package update-contributors

[group: "code-checking"]
check: fmt clippy test forbid
#!/usr/bin/env bash
set -euxo pipefail
git diff --no-ext-diff --quiet --exit-code
VERSION=`sed -En 's/version[[:space:]]*=[[:space:]]*"([^"]+)"/\1/p' Cargo.toml | head -1`
grep "^\[$VERSION\]" CHANGELOG.md

[group: "code-checking"]
[doc: "Run cargo-outdated command to check for out-of-date packages"]
outdated:
cargo outdated -R

# publish current GitHub master branch
[group: "developer-workflow"]
publish:
#!/usr/bin/env bash
set -euxo pipefail
Expand All @@ -84,13 +108,19 @@ publish:
cd ../..
rm -rf tmp/release

[group: "documentation"]
[doc: "Search for master version note subscripts in the README"]
readme-version-notes:
grep '<sup>master</sup>' README.md

[group: "developer-workflow"]
[doc: "Push to GitHub"]
push: check
! git branch | grep '* master'
git push github

[group: "developer-workflow"]
[doc: "Create a pull request"]
pr: push
gh pr create --web

Expand All @@ -116,23 +146,27 @@ install-dev-deps:
cargo install mdbook mdbook-linkcheck

# everyone's favorite animate paper clip
[group: "code-checking"]
clippy:
cargo clippy --all --all-targets --all-features

forbid:
./bin/forbid

# count non-empty lines of code
[group: "developer-workflow"]
sloc:
@cat src/*.rs | sed '/^\s*$/d' | wc -l

replace FROM TO:
sd '{{FROM}}' '{{TO}}' src/*.rs

[group: "demo-recipes"]
test-quine:
cargo run -- quine

# make a quine, compile it, and verify it
[group: "demo-recipes"]
quine:
mkdir -p tmp
@echo '{{quine-text}}' > tmp/gen0.c
Expand Down Expand Up @@ -160,19 +194,25 @@ quine-text := '
}
'

[group: "documentation"]
render-readme:
#!/usr/bin/env ruby
require 'github/markup'
$rendered = GitHub::Markup.render("README.adoc", File.read("README.adoc"))
File.write('tmp/README.html', $rendered)

[group: "documentation"]
watch-readme:
just render-readme
fswatch -ro README.adoc | xargs -n1 -I{} just render-readme

# Test shell completions
[group: "testing"]
test-completions:
./tests/completions/just.bash

[group: "documentation"]
[doc: "Generate the just mdbook-style documentation"]
build-book:
cargo run --package generate-book
mdbook build book/en
Expand All @@ -190,6 +230,7 @@ convert-integration-test test:
-e 's/\.run\(\)/.run();/'

# run all polyglot recipes
[group: "demo-recipes"]
polyglot: _python _js _perl _sh _ruby

_python:
Expand Down Expand Up @@ -219,9 +260,11 @@ _ruby:
puts "Hello from ruby!"

# Print working directory, for demonstration purposes!
[group: "demo-recipes"]
pwd:
echo {{invocation_directory()}}

[group: "testing"]
test-bash-completions:
rm -rf tmp
mkdir -p tmp/bin
Expand Down

0 comments on commit 5717ade

Please sign in to comment.