docs: improve examples, remove docs superseded by typespec docstrings (#279)

* chore(bling): uncomment example options

* refactor(brew): remove duplicate "configuration options" setting in README, improve TSP docs

* fix(chezmoi): make example an example and not a doc of the configuration options

* chore(rpm-ostree): remove fake example

examples should be runnable

* fix(rpm-ostree): add replacing packages to typespec schema

* fix(rpm-ostree): actually install the packages the repos are added for

* feat(rpm-ostree): showcase installing from URL and using optfix in example

* fix(rpm-ostree): add optfix to typespec

* fix(systemd): real-world example instead of configuration docs duplicate
This commit is contained in:
xyny 2024-07-16 17:09:00 +00:00 committed by GitHub
parent f91f2abc90
commit 46b1070110
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 48 additions and 67 deletions

View file

@ -5,9 +5,9 @@ typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/blin
example: |
type: bling
install:
# - ublue-update # https://github.com/ublue-os/ublue-update
# - 1password # install 1Password (stable) and `op` CLI tool
# - dconf-update-service # a service unit that updates the dconf db on boot
# - gnome-vrr # enables gnome-vrr for your image
# - laptop # installs TLP and configures your system for laptop usage
# - flatpaksync # allows synchronization of user-installed flatpaks, see separate documentation section
- ublue-update # https://github.com/ublue-os/ublue-update
- 1password # install 1Password (stable) and `op` CLI tool
- dconf-update-service # a service unit that updates the dconf db on boot
- gnome-vrr # enables gnome-vrr for your image
- laptop # installs TLP and configures your system for laptop usage
- flatpaksync # allows synchronization of user-installed flatpaks, see separate documentation section

View file

@ -51,8 +51,6 @@ The brew module installs [Homebrew / Linuxbrew](https://brew.sh/) on your system
- `brew-update` runs at the specified time to update Brew to the latest version
- `brew-upgrade` runs at the specified time to upgrade Brew packages
## Configuration Options
### Update
The Brew update operation updates the Brew binary to latest version.

View file

@ -8,27 +8,35 @@ model BrewModule {
*/
type: "brew";
/** Whether to auto-update the Brew binary. */
/** Whether to auto-update the Brew binary using a systemd service. */
"auto-update"?: boolean = true;
/** Interval between Brew updates. */
/** Defines how often the Brew update service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
"update-interval"?: string = "6h";
/** Time delay after boot before first Brew update .*/
/** Time delay after system boot before the first Brew update runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
"update-wait-after-boot"?: string = "10min";
/** Wthether to auto-upgrade Brew packages. */
/** Whether to auto-upgrade all installed Brew packages using a systemd service. */
"auto-upgrade"?: boolean = true;
/** Interval between Brew package upgrades. */
/** Defines how often the Brew upgrade service should run. The string is passed directly to `OnUnitInactiveSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
"upgrade-interval"?: string = "8h";
/** Time delay after boot before first Brew package upgrade. */
/** Time delay after system boot before the first Brew package upgrade runs. The string is passed directly to `OnBootSec` in systemd timer. (Syntax: ['1d', '6h', '10m']). */
"upgrade-wait-after-boot"?: string = "30min";
/** Whether to apply nofile limits (limits for number of open files) for Brew installations. */
/** Whether to increase nofile limits (limits for number of open files) for Brew installations.
* When set to true, it increases the nofile limits to prevent certain "I/O heavy" Brew packages from failing due to "too many open files" error.
* However, it's important to note that increasing nofile limits can have potential security implications for malicious applications which would try to abuse storage I/O.
* Defaults to false for security purposes.
*
* https://serverfault.com/questions/577437/what-is-the-impact-of-increasing-nofile-limits-in-etc-security-limits-conf
*/
"nofile-limits"?: boolean = false;
/** Whether to enable Brew analytics. */
/** Whether to enable Brew analytics.
* The Homebrew project uses analytics to anonymously collect the information about Brew usage & your system in order to improve the experience of Brew users.
*/
"brew-analytics"?: boolean = true;
}

View file

@ -4,19 +4,5 @@ readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/brew/R
typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/brew/brew.tsp
example: |
type: brew
# Auto-update Brew binary
auto-update: true # Optional - Default: true - Expects type: boolean
# Interval between Brew updates
update-interval: '6h' # Optional - Default: '6h' - Expects type: string
# Time delay after boot before first Brew update
update-wait-after-boot: '10min' # Optional - Default: '10min' - Expects type: string
# Auto-upgrade Brew packages
auto-upgrade: true # Optional - Default: true - Expects type: boolean
# Interval between Brew package upgrades
upgrade-interval: '8h' # Optional - Default: '8h' - Expects type: string
# Time delay after boot before first Brew upgrade
upgrade-wait-after-boot: '30min' # Optional - Default: '30min' - Expects type: string
# Apply nofile limits for Brew installations
nofile-limits: false # Optional - Default: false - Expects type: boolean
# Control Brew analytics
brew-analytics: true # Optional - Default: true - Expects type: boolean
nofile-limits: true # increase nofile limits
brew-analytics: false # disable telemetry

View file

@ -4,18 +4,7 @@ readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/chezmo
typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/chezmoi/chezmoi.tsp
example: |
type: chezmoi
# Git repository to initialize
repository: "https://example.org/user/dotfiles" # Required - Default: n/a - Expects type: string
# Whether to enable the modules services globally for all users, if false users need to enable services manually
all-users: true # Optional - Default: true - Expects type: boolean
# Dotfiles will be updated with this interval
run-every: '1d' # Optional - Default: '1d' - Expects type: string
# Dotfile updates will wait this long after a boot before running
wait-after-boot: '5m' # Optional - Default: '5m' - Expects type: string
# Disable the service that initializes `repository` on users that are logged in or have linger enabled
disable-init: false # Optional - Default: false - Expects type: boolean
# Disable the timer that updates chezmoi with the interval set above
disable-update: false # Optional - Default: false - Expects type: boolean
# What to do when file different that exists on your repo is has been changed or exists locally. Accepts "skip" or "replace"
file-conflict-policy: "skip" # Optional - Default: "skip" - Expects type: string
repository: "https://github.com/octocat/dotfiles" # my dotfiles repo
all-users: false # make users have to enable chezmoi manually
file-conflict-policy: replace # override changed files with those from the repo

View file

@ -6,13 +6,15 @@ example: |
type: rpm-ostree
repos:
- https://copr.fedorainfracloud.org/coprs/atim/starship/repo/fedora-%OS_VERSION%/atim-starship-fedora-%OS_VERSION%.repo # when including COPR repos, use the %OS_VERSION% magic string
- https://pkgs.tailscale.com/stable/fedora/tailscale.repo
- https://brave-browser-rpm-release.s3.brave.com/brave-browser.repo
keys:
- https://brave-browser-rpm-release.s3.brave.com/brave-core.asc
optfix:
- Tabby # needed because tabby installs into /opt/Tabby
install:
- python3-pip
- libadwaita
- starship
- brave-browser
- https://github.com/Eugeny/tabby/releases/download/v1.0.209/tabby-1.0.209-linux-x64.rpm
remove:
- firefox
- firefox-langpacks
@ -21,8 +23,4 @@ example: |
packages:
- mutter
- mutter-common
- gdm
- from-repo: https://copr.fedorainfracloud.org/coprs/owner/repository2/repo/fedora-%OS_VERSION%/owner-repository2-fedora-%OS_VERSION%.repo
packages:
- package4
- package5
- gdm

View file

@ -14,9 +14,20 @@ model RpmOstreeModule {
/** List of links to key files to import for installing from custom repositories. */
keys?: Array<string>;
/** List of folder names under /opt/ to enable for installing into. */
optfix?: Array<string>;
/** List of RPM packages to install. */
install?: Array<string>;
/** List of RPM packages to remove. */
remove?: Array<string>;
/** List of configurations for `rpm-ostree override replace`ing packages. */
replace?: Array<{
/** URL to the source COPR repo for the new packages. */
"from-repo": string,
/** List of packages to replace using packages from the defined repo. */
packages: Array<string>,
}>;
}

View file

@ -4,21 +4,12 @@ readme: https://raw.githubusercontent.com/blue-build/modules/main/modules/system
typespec: https://raw.githubusercontent.com/blue-build/modules/main/modules/systemd/systemd.tsp
example: |
type: systemd
# this example disables automatic flatpak updates and enables a custom service unit for all users
system:
enabled:
- example.service # Enabled (runs on system boot)
disabled:
- example.target # Disabled (does not run on system boot, unless another unit strictly requires it)
masked:
- example.service # Masked (does not run on system boot, under any circumstances)
unmasked:
- example.service # Unmasked (runs on system boot, even if previously masked)
- flatpak-system-update.timer
user:
enabled:
- example.timer # Enabled (runs for the users)
- my-custom.service
disabled:
- example.service # Disabled (does not run for the users, unless another unit strictly requires it)
masked:
- example.service # Masked (does not run for the users, under any circumstances)
unmasked:
- example.service # Unmasked (runs for the users, even if previously masked)
- flatpak-user-update.timer