This directory contains various shell scripts used for development, testing, and deployment of the Firezone product.
We lint shell scripts in CI. To get your PR to pass, you'll want to ensure your local development environment is set up to lint shell scripts:
- Install
shfmt
:brew install shfmt
on macOS- Install shfmt from https://github.com/mvdan/sh/releases for other platforms
- Install
shellcheck
:brew install shellcheck
on macOSsudo apt-get install shellcheck
on Ubuntu
Then just lint and format your shell scripts before you commit:
shfmt -i 4 **/*.sh
shellcheck --severity=warning **/*.sh
You can achieve this more easily by using pre-commit
. See
CONTRIBUTING.
- Vim (here's an example using ALE)
- VSCode
- Use
#!/usr/bin/env bash
along withset -euo pipefail
in general for dev and test scripts. - In Docker images and other minimal envs, stick to
#!/bin/sh
and simplyset -eu
.