summaryrefslogtreecommitdiff
path: root/justfile
blob: 31d3a8b2370e7feb049899099d4476f10cf85ba5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
alias fmt := format

head := `git rev-parse HEAD`

_default:
    @just --list

# Auto-format source code.
format:
    cargo fmt --all
    env RUST_LOG=warn taplo format
    find . -type f -iname justfile -print0 | xargs -0rn 1 just --fmt --unstable --justfile
    find . -type f -name '*.nix' -print0 | xargs -0rn 1 nixfmt

# Run all checks.
check:
    @# Check format
    cargo fmt --all --check
    env RUST_LOG=warn taplo format --check
    find . -type f -iname justfile -print0 | xargs -0rn 1 just --fmt --unstable --check --justfile
    @# nix fmt -- --ci # treefmt --ci is not read-only
    find . -type f -name '*.nix' -print0 | xargs -0rn 1 nixfmt --check
    @# Lint
    env RUST_LOG=warn taplo lint
    cargo clippy --workspace --all-targets --all-features -- --deny warnings
    @# Build
    cargo build --workspace --all-targets --all-features
    env RUSTDOCFLAGS="-Dwarnings" cargo doc --all-features --no-deps --document-private-items
    @# Test
    cargo test --workspace --all-targets --all-features
    @# Check dependencies for known security vulnerabilities, licenses, etc.
    cargo audit
    cargo deny --workspace --all-features check --show-stats bans licenses sources
    @# Check Nix flake
    nix flake check --print-build-logs --verbose
    cd examples/nixos/ && nix flake check --print-build-logs --verbose --override-input temp-postgres ../..

# Update Nix flake inputs, and Rust dependencies.
update:
    @# Update Nix flake inputs.
    git diff --stat --exit-code
    nix flake update
    nix develop --command just check
    git diff --stat --exit-code -- . ':(exclude)flake.lock'
    git diff --no-patch --exit-code flake.lock || git commit --message 'Update Nix flake inputs' flake.lock
    @# Update Rust dependencies.
    git diff --stat --exit-code
    nix develop --command cargo upgrade
    nix develop --command cargo update
    nix develop --command just check
    git diff --stat --exit-code -- . ':(exclude)Cargo.toml' ':(exclude)Cargo.lock'
    git diff --no-patch --exit-code Cargo.lock || git commit --message 'Update Rust dependencies' Cargo.toml Cargo.lock
    @# Show commits.
    git --no-pager log --stat {{ head }}..
Generated by cgit. See skreutz.com for my tech blog and contact information.