From 8f0489a6226b443edcd4a859b7be83d225948478 Mon Sep 17 00:00:00 2001 From: Marc Cataford Date: Sun, 10 Nov 2024 10:01:22 -0500 Subject: [PATCH] build: add pre-commit tooling + basic go/shell/yaml hooks docs: mention pre-commit --- .pre-commit-config.yaml | 16 ++++++++++++++++ README.md | 4 ++++ bootstrap.sh | 8 ++++++++ 3 files changed, 28 insertions(+) create mode 100644 .pre-commit-config.yaml create mode 100755 bootstrap.sh diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..633f7c2 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,16 @@ +--- +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.6.0 + hooks: + - id: check-yaml + - repo: https://github.com/shellcheck-py/shellcheck-py + rev: v0.10.0.1 + hooks: + - id: shellcheck + - repo: https://github.com/tekwizely/pre-commit-golang + rev: master + hooks: + - id: go-test-mod + - id: go-fmt + - id: go-vet-mod diff --git a/README.md b/README.md index b9c18cb..9dc8e31 100644 --- a/README.md +++ b/README.md @@ -22,3 +22,7 @@ curl https://forge.karnov.club/spadinastan/spud/raw/branch/main/install.sh | bas To pull a specific version, supply a `$SPUD_VERSION` that corresponds to an existing release tag, and to control where the binary is unpacked and installed, supply `$SPUD_ROOT`. + +## Development + +The `bootstrap.sh` script should be run to prepare any pre-commit hooks and other required tooling for local development. Checks can be run manually via `pipx run pre-commit run -a`. diff --git a/bootstrap.sh b/bootstrap.sh new file mode 100755 index 0000000..6dac009 --- /dev/null +++ b/bootstrap.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +if [[ -z "$(command -v pipx)" ]]; then + echo "ERROR: Pre-commit tooling requires pipx to be available." + exit 1 +fi + +pipx run pre-commit install