Commit 2344f187 authored by Nick Gaskill's avatar Nick Gaskill

Merge branch 'add-shfmt-to-shell-scripting-guide' into 'master'

Add docs for running shfmt on shell scripts

See merge request gitlab-org/gitlab!30828
parents 0e6b70a7 086193d8
...@@ -80,7 +80,20 @@ We format shell scripts according to the [Google Shell Style Guide](https://goog ...@@ -80,7 +80,20 @@ We format shell scripts according to the [Google Shell Style Guide](https://goog
so the following `shfmt` invocation should be applied to the project's script files: so the following `shfmt` invocation should be applied to the project's script files:
```shell ```shell
shfmt -i 2 -ci scripts/**/*.sh shfmt -i 2 -ci -w scripts/**/*.sh
```
In addition to the [Linting](#linting) GitLab CI/CD job, all projects with shell scripts should also
use this job:
```yaml
shfmt:
image: mvdan/shfmt:v3.1.0-alpine
stage: test
before_script:
- shfmt -version
script:
- shfmt -i 2 -ci -d scripts # path to your shell scripts
``` ```
TIP: **Tip:** TIP: **Tip:**
...@@ -88,11 +101,6 @@ By default, shfmt will use the [shell detection](https://github.com/mvdan/sh#shf ...@@ -88,11 +101,6 @@ By default, shfmt will use the [shell detection](https://github.com/mvdan/sh#shf
and ignore files starting with a period. To override this, use `-ln` flag to specify the shell dialect: and ignore files starting with a period. To override this, use `-ln` flag to specify the shell dialect:
`-ln posix` or `-ln bash`. `-ln posix` or `-ln bash`.
NOTE: **Note:**
Currently, the `shfmt` tool [is not shipped](https://github.com/mvdan/sh/issues/68) as a Docker image containing
a Linux shell. This makes it impossible to use the [official Docker image](https://hub.docker.com/r/mvdan/shfmt)
in GitLab Runner. This [may change](https://github.com/mvdan/sh/issues/68#issuecomment-507721371) in future.
## Testing ## Testing
NOTE: **Note:** NOTE: **Note:**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment