Home

Awesome

<img src="https://raw.githubusercontent.com/gabyx/githooks/main/docs/githooks-logo.svg" style="margin-left: 20pt" align="right">

Githooks for Shell Scripts

This repository contains shared repository Git hooks for shell scripts in githooks/* to be used with the Githooks Manager.

The following hooks are included:

<details> <summary><b>Table of Content (click to expand)</b></summary> <!-- TOC --> </details>

Requirements

Run them containerized where only docker is required.

If you want to run them non-containerized, make the following installed on your system:

This works with Windows setups too.

Installation

The hooks can be used by simply using this repository as a shared hook repository inside your repository. See further documentation.

You should configure the shared hook repository in your project to use this repos main branch by using the following .githooks/.shared.yaml :

version: 1
urls:
  - https://github.com/gabyx/githooks-shell.git@main`.

Hooks

Format Shell: pre-commit/1-format/format-shell.yaml

Formatting with shfmt.

Check Shell Mistakes: pre-commit/2-check/check-shell-mistakes.yaml

Mistakes such as wrong shellcheck ignore format and 'set -x' are checked.

Check Shell: pre-commit/2-check/check-shell.yaml

Linting file with shellcheck.

Scripts

The following scripts are provided:

They can be used in scripts by doing the following trick inside a repo which uses this hook:

shellHooks=$(git hooks shared root ns:githooks-shell)
"$shellHooks/githooks/scripts/<script-name>.sh"

Testing

The containerized tests in tests/* are executed by

tests/test.sh

or only special tests steps by

tests/test.sh --seq 001..010

For showing the output also in case of success use:

tests/test.sh --show-output [other-args]