jeset 1.0.2

Opinionated, ready to use color-eyre and tracing-journald setup for applications
Documentation
#!/usr/bin/env bash

set -euo pipefail

export CI="true" # https://insta.rs/docs/quickstart/#continuous-integration

sysinfo() {
    echo "System information:"
    uname -a
    rustc --version
    cargo --version
    echo "CARGO_HOME=${CARGO_HOME}"
    echo "---"
    echo "Environment variables:"
    printenv | sort
}

install_test_deps() {
    echo "Initialising test dependencies"
    apt-get update -yq
    apt-get install -yq --no-install-recommends wireguard-tools
}

lint() {
    echo "Linting"
    rustup component add clippy
    cargo clippy --all-features --color always -- --deny warnings --forbid unsafe_code
}

tests() {
    echo "Testing"
    install_test_deps
    cargo test --color=always -- --color=always           # <https://github.com/rust-lang/cargo/issues/11581#issuecomment-1382870899>
    cargo test --color=always -- --color=always --ignored # slow tests
}

build() {
    cargo build --color always
}

main() {
    sysinfo
    build
    lint
    tests
}

main "$@"