#!/bin/sh set -eu verbose=false if [ "$#" -gt 0 ] then case "$1" in verbose | -v | --verbose) verbose=true ;; esac fi hideok= if command -v chronic > /dev/null then hideok=chronic fi if $verbose then hideok= fi codegen() { $hideok sp-codegen "$1" --output "$2" --run } docgen() { $hideok sp-docgen "$1" --output "$2" } $hideok cargo build --all-targets if cargo --list | awk '{ print $1 }' | grep 'clippy$' > /dev/null then $hideok cargo clippy fi $hideok cargo test if command -v rustfmt > /dev/null then find src -type f -name '*.rs' -exec rustfmt --check '{}' + fi if command -v black > /dev/null then $hideok find . -type f -name '*.py' ! -name template.py ! -name test.py \ -exec black --check '{}' + fi for md in [^CR]*.md do $hideok echo "$md =====================================" codegen "$md" test.py docgen "$md" "$(basename "$md" .md).pdf" docgen "$md" "$(basename "$md" .md).html" $hideok echo done echo "Everything seems to be in order."