summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/README.md26
-rwxr-xr-xtools/check-dependencies7
-rwxr-xr-xtools/check-lints8
-rwxr-xr-xtools/check-tests8
-rwxr-xr-xtools/checks11
5 files changed, 60 insertions, 0 deletions
diff --git a/tools/README.md b/tools/README.md
new file mode 100644
index 0000000..8c1b7e0
--- /dev/null
+++ b/tools/README.md
@@ -0,0 +1,26 @@
+# Local Tools
+
+The scripts in this directory assume they will be run from the root of the
+project, as `tools/NAME`. They contain brief, branch-free, composable scripts
+intended to be run to achieve frequent goals. They act as a shared shell
+history, of a sorts, and as a place to put command-line-ish code that needs to
+be shared by multiple components.
+
+Each script begins with a brief comment demonstrating the intended invocation
+and the effects.
+
+## Authoring
+
+Tools _should_ begin with a shebang or shell `set` expression that enables
+exiting on failure and that enables command echoing, followed by a documentation
+comment:
+
+```bash
+#!/bin/bash -ex
+
+# tools/my-example-tool
+#
+# Runs all example tasks.
+
+: …
+```
diff --git a/tools/check-dependencies b/tools/check-dependencies
new file mode 100755
index 0000000..36641e3
--- /dev/null
+++ b/tools/check-dependencies
@@ -0,0 +1,7 @@
+#!/bin/bash -ex
+
+# check-dependencies
+#
+# Checks that the dependencies in this project are all in use.
+
+cargo udeps --locked --all-targets
diff --git a/tools/check-lints b/tools/check-lints
new file mode 100755
index 0000000..1314896
--- /dev/null
+++ b/tools/check-lints
@@ -0,0 +1,8 @@
+#!/bin/bash -ex
+
+# tools/check-lints
+#
+# Checks that the code in this project passes style checks.
+
+cargo fmt -- --check
+cargo clippy -- --deny warnings
diff --git a/tools/check-tests b/tools/check-tests
new file mode 100755
index 0000000..ef2a7bc
--- /dev/null
+++ b/tools/check-tests
@@ -0,0 +1,8 @@
+#!/bin/bash -ex
+
+# tools/check-tests
+#
+# Checks that the code in this project passes incorrectness checks.
+
+cargo build --locked --all-targets
+cargo test
diff --git a/tools/checks b/tools/checks
new file mode 100755
index 0000000..26a20ae
--- /dev/null
+++ b/tools/checks
@@ -0,0 +1,11 @@
+#!/bin/bash -ex
+
+# tools/checks
+#
+# Runs all code checks. If you're automating testing, call this rather than
+# invoking a test command directly; if you're adding a test command, add it here
+# or to one of the tools called from this script.
+
+tools/check-tests
+tools/check-lints
+tools/check-dependencies