particle-os-modules/modules/script
xyny be6e4ba5bd
feat: add typespec schemas for modules (#233)
* feat: add typespec for bling and akmods for testing

* chore: temporarily change module source to dev branch

* feat: add missing module typespecs from blue-build/schema

* feat: add schemas for default-flatpaks module

* chore: annotate some parameters as optional

* fix: typo in default-flatpaks schema

* feat: add schema for files module

* feat: add script module schema

* feat: add signing module schema

* docs: add module.yml docs etc.

* fix(default-flatpaks): don't capitalize string in typespec

* feat: add schemas for gnome-extensions

* fix(files): properly declare string: string record type

* chore: add tsp for gschema-overrides

* chore: tsp for systemd module

* chore: add link to systemd tsp to module.yml

* chore: add tsp for yafti module

* feat: add docstrings for files module

* feat: add tsp for chezmoi module

* feat: docstrings for akmods tsp

* feat: docstrings for bling tsp

* feat: docstrings for default flatpaks tsp

* fix: link to files module docs page in files module tsp

* feat: docstrings for fonts module tsp

* feat: add docstrings for gnome extensions tsp

* feat: docstrings for gschema overrides tsp

* feat: docstrings for rpm ostree tsp

* feat: docstrings for script tsp

* feat: docstrings for signing module

* feat: docstrings for systemd tsp

* feat: docstrings for yafti module

* fix: typo in files tsp

* feat: typespec for brew module

* chore: update rpm ostree tsp for keys: prop

* fix: use typespec to declare default values

* fix: errors from previous commit

* docs: add typespec instructions

* docs: chore: add typespec docs link for docs syntax

* chore: switch to semicolon for ending property definitions

* docs: fix: typo inlude -> include

* feat: tsp for justfiles module

* chore: change links to reference main branch

---------

Co-authored-by: fiftydinar <65243233+fiftydinar@users.noreply.github.com>
2024-07-09 16:25:31 +00:00
..
module.yml feat: add typespec schemas for modules (#233) 2024-07-09 16:25:31 +00:00
README.md feat(script): add snippet support for script module (#124) 2024-03-17 12:14:23 +02:00
script.sh feat(script): add snippet support for script module (#124) 2024-03-17 12:14:23 +02:00
script.tsp feat: add typespec schemas for modules (#233) 2024-07-09 16:25:31 +00:00

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 config/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 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.