summaryrefslogtreecommitdiff
path: root/check
diff options
context:
space:
mode:
Diffstat (limited to 'check')
-rwxr-xr-xcheck63
1 files changed, 63 insertions, 0 deletions
diff --git a/check b/check
new file mode 100755
index 0000000..753de3d
--- /dev/null
+++ b/check
@@ -0,0 +1,63 @@
+#!/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."