Appendix: Example package sets

The following are package-sets that can be useful starting places.

Example: installing homebrew via curl

---
name: homebrew
platform: macos
description: macOS homebrew package manager
actions:
  scripts:
    install: "curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash"

Example: setting macOS experience defaults

---
name: macos defaults
platform: macos
actions:
  scripts:
    install: >-
      defaults write com.apple.dashboard devmode YES &&
      defaults write com.apple.finder _FXShowPosixPathInTitle -bool YES &&
      defaults write com.apple.Dock showhidden -bool YES

Example: a long list of packages

name: fonts
description: all those missing fonts!
actions:
  packages:
    - name: homebrew/cask-fonts/font-fira-code
      platform: macos
      kind: application
    - name: homebrew/cask-fonts/font-fira-code-nerd-font
      platform: macos
      kind: application
    - name: font-meslo-lg
      platform: macos
      kind: application
    - name: font-meslo-lg-nerd-font
      platform: macos
      kind: application
    - name: font-linux-libertine
      platform: macos
      kind: application
    - name: fonts-powerline
      platform: linux

Example: linking files and run-after

---
name: zsh
description: the Z shell
actions:
  packages:
    - name: zsh
    - name: zsh-completions
    - name: zsh-navigation-tools
      platform: macos
link-files:
  dot-zlogin: "{{home}}/.zlogin"
  dot-zshenv: "{{home}}/.zshenv"
  dot-zshrc: "{{home}}/.zshrc"
run-after: "{{package_set_path}}/run-after"

Example: custom variables

---
name: gpg
description: Gnu Privacy Guard
env-vars:
  gpg_home: "{{home}}/.gnupg"
actions:
  packages:
    - name: gpg
    - name: pinentry-gnome3
      platform: linux
    - name: pinentry-mac
      platform: macos
link-files:
  gpg.conf: "{{gpg_home}}/gpg.conf"
  "gpg-agent-{{platform_os}}.conf": "{{gpg_home}}/gpg-agent.conf"
run-after: gpg --list-keys