* docs: Update documentation to reflect change from `config/` to `files/` * docs(files): Match documentation between template & module.yml * docs(files): Add example about using subfolder * docs(files): Some small style fixes * docs: Fix `files/system` typo Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com> * docs: Fix `files/system` typo pt. 2 Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com> * chore(files): Update typespec to be compatible with legacy & new recipe Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com> --------- Co-authored-by: xyny <60004820+xynydev@users.noreply.github.com>
19 lines
1.1 KiB
Markdown
19 lines
1.1 KiB
Markdown
# `script`
|
|
|
|
The `script` module can be used to run arbitrary bash snippets and scripts at image build time. This is intended for running commands that need no YAML configuration.
|
|
|
|
The snippets, which are run in a bash subshell, are declared under `snippets:`.
|
|
The scripts, which are run from the `files/scripts/` directory, are declared under `scripts:`.
|
|
|
|
## Creating a Script
|
|
|
|
Look at `example.sh` for an example shell script. You can rename and copy the file for your own purposes. In order for the script to be executed, declare it in the recipe
|
|
|
|
When creating a script, please make sure
|
|
|
|
- ...its filename ends with `.sh`.
|
|
- This follows convention for (especially bash) shell scripts.
|
|
- ...it starts with a [shebang](<https://en.wikipedia.org/wiki/Shebang_(Unix)>) like `#!/usr/bin/env bash`.
|
|
- This ensures the script is ran with the correct interpreter / shell.
|
|
- ...it contains the command `set -euo pipefail` right after the shebang.
|
|
- This will make the image build fail if your script fails. If you do not care if your script works or not, you can omit this line.
|