just/examples/pre-commit.just

60 lines
2.1 KiB
Plaintext

# use with https://github.com/casey/just
# Example combining just + pre-commit
# pre-commit: https://pre-commit.com/
# > A framework for managing and maintaining
# > multi-language pre-commit hooks.
# pre-commit brings about encapsulation of your
# most common repo scripting tasks. It is perfectly
# usable without actually setting up precommit hooks.
# If you chose to, this justfiles includes shorthands
# for git commit and amend to keep pre-commit out of
# the way when in flow on a feature branch.
# uses: https://github.com/tekwizely/pre-commit-golang
# uses: https://github.com/prettier/prettier (pre-commit hook)
# configures: https://www.git-town.com/ (setup receipt)
# fix auto-fixable lint issues in staged files
fix:
pre-commit run go-returns # fixes all Go lint issues
pre-commit run prettier # fixes all Markdown (& other) lint issues
# lint most common issues in - or due - to staged files
lint:
pre-commit run go-vet-mod || true # runs go vet
pre-commit run go-lint || true # runs golint
pre-commit run go-critic || true # runs gocritic
# lint all issues in - or due - to staged files:
lint-all:
pre-commit run golangci-lint-mod || true # runs golangci-lint
# run tests in - or due - to staged files
test:
pre-commit run go-test-mod || true # runs go test
# commit skipping pre-commit hooks
commit m:
git commit --no-verify -m "{{m}}"
# amend skipping pre-commit hooks
amend:
git commit --amend --no-verify
# install/update code automation (prettier, pre-commit, goreturns, lintpack, gocritic, golangci-lint)
install:
npm i -g prettier
curl https://pre-commit.com/install-local.py | python3 -
go get github.com/sqs/goreturns
go get github.com/go-lintpack/lintpack/...
go get github.com/go-critic/go-critic/...
curl -sfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh| sh -s -- -b $(go env GOPATH)/bin v1.27.0
# setup/update pre-commit hooks (optional)
setup:
pre-commit install --install-hooks # uninstall: `pre-commit uninstall`
git config git-town.code-hosting-driver gitea # setup git-town with gitea
git config git-town.code-hosting-origin-hostname gitea.example.org # setup git-town origin hostname