calamares-settings/calamares/modules/shellprocess.conf

91 lines
3.6 KiB
Plaintext

# SPDX-FileCopyrightText: no
# SPDX-License-Identifier: CC0-1.0
#
# Configuration for the shell process job.
#
# Executes a list of commands found under the key *script*.
# If the top-level key *dontChroot* is true, then the commands
# are executed in the context of the live system, otherwise
# in the context of the target system. In all of the commands,
# the following substitutions will take place:
# - `@@ROOT@@` is replaced by the root mount point of the **target**
# system from the point of view of the command (for chrooted
# commands, that will be */*).
# - `@@USER@@` is replaced by the username, set on the user page.
#
# The (global) timeout for the command list can be set with
# the *timeout* key. The value is a time in seconds, default
# is 30 seconds if not set. The timeout **must** be tuned, either
# globally or per-command (see below in the description of *script*),
# to the load or expected running-time of the command.
#
# - Setting a timeout of 30 for a `touch` command is probably exessive
# - Setting a timeout of 1 for a `touch` command might be low,
# on a slow disk where touch needs to be loaded from CDROM
# - Setting a timeout of 30 for a 1GB download is definitely low
# - Setting a timeout of 3600 for a 1GB download is going to leave
# the user in uncertainty for a loooong time.
#
# If a command starts with "-" (a single minus sign), then the
# return value of the command following the - is ignored; otherwise,
# a failing command will abort the installation. This is much like
# make's use of - in a command.
#
# The value of *script* may be:
# - a single string; this is one command that is executed.
# - a single object (this is not useful).
# - a list of items; these are executed one at a time, by
# separate shells (/bin/sh -c is invoked for each command).
# Each list item may be:
# - a single string; this is one command that is executed.
# - a single object, specifying a key *command* and (optionally)
# a key *timeout* to set the timeout for this specific
# command differently from the global setting.
#
# Using a single object is not useful because the same effect can
# be obtained with a single string and a global timeout, but when
# there are multiple commands to execute, one of them might have
# a different timeout than the others.
#
# To change the description of the job, set the *name* entries in *i18n*.
---
# Set to true to run in host, rather than target system
dontChroot: false
# Tune this for the commands you're actually running
# timeout: 10
# Script may be a single string (because false returns an error exit
# code, this will trigger a failure in the installation):
#
# script: "/usr/bin/false"
# Script may be a list of strings (because false returns an error exit
# code, **but** the command starts with a "-", the error exit is
# ignored and installation continues):
#
# script:
# - "-/usr/bin/false"
# - "/bin/ls"
# - "/usr/bin/true"
# Script may be a list of items (if the touch command fails, it is
# ignored; the slowloris command has a different timeout from the
# other commands in the list):
script:
- "-touch @@ROOT@@/tmp/thingy"
- "/usr/bin/true"
- command: "/usr/local/bin/slowloris"
timeout: 3600
# You can change the description of the job (as it is displayed in the
# progress bar during installation) by defining an *i18n* key, which
# has a *name* field and optionally, translations as *name[lang]*.
#
# Without a translation here, the default name from the source code
# is used, "Shell Processes Job".
#
# i18n:
# name: "Shell process"
# name[nl]: "Schelpenpad"
# name[en_GB]: "Just a moment"