Here is a breakdown of all configuration options:
-
install(Array)-
Installation steps to execute.
-
See Installer Configuration for supported types and options that you can provide.
-
-
debug(Boolean)- Enable or disable debug mode.
- Default:
false.
-
check_updates(Boolean)- Enable or disable checking for updates before running operations.
- Default:
false.
-
repo_update(Object)- Controls how repository index updates (e.g.
apt update,brew update) are handled per installer type. Keys are installer types, values are one of:once— Run the repo update at most once per sofmani run (default).always— Run the repo update before every install/update operation.never— Skip the repo update entirely.
- Supported types:
brew,apt,apk. - Default:
oncefor all supported types. - Example:
repo_update: brew: once apt: always apk: never
- Controls how repository index updates (e.g.
-
summary(Boolean)- Enable or disable the installation summary at the end.
- The summary shows newly installed and upgraded software in a hierarchical format.
- Default:
true.
-
category_display(String)- Controls how category headers are rendered in the output.
- Values:
border— Full border with spacing before and after (default).border-compact— Border without spacing before and after.minimal— Plain text without border or spacing.
- Default:
border.
-
defaults(Object)-
Defaults to apply to all installer types, such as specifying supported platforms or commonly used flags.
-
defaults.typeA mapping between each type (key) and their default options (value).
- See Installer Configuration for supported types and options that you can override.
-
-
env(Object)- Environment variables that will be set for the context of the installer.
- OS environment variables are passed and may be overridden for this config and all of its installers here.
-
machine_aliases(Object)- A mapping of friendly names to machine IDs.
- Use
sofmani --machine-idto get the machine ID for each of your machines. - These aliases can then be used in installer
machines.onlyandmachines.exceptfields instead of the raw machine IDs. - The alias for the current machine is also available as the
{{ .DeviceIDAlias }}template variable and the$DEVICE_ID_ALIASenvironment variable in all commands. - Example:
machine_aliases: work-laptop: 5fa2a8e8193868df home-desktop: a1b2c3d4e5f67890 home-server: fedcba0987654321
debug: false
check_updates: true
summary: true
category_display: border
repo_update:
brew: once
apt: once
defaults:
type:
brew:
platforms:
only: ['macos']
install:
- name: jq
type: brew