#!/usr/bin/env bash # Install the addons the active profile asked for, in the order listed. # One idempotent script per addon in ctrl/addons/. # Usage: addons.sh install | list # Notes: docs/notes/addons.md set -euo pipefail cd "$(dirname "$0")" source ./lib/config.sh load_config install() { if [ -z "${ADDONS// /}" ]; then echo "no addons in profile '$PROFILE_NAME'" return fi local a for a in $ADDONS; do if [ ! -f "addons/${a}.sh" ]; then echo "no such addon: addons/${a}.sh" >&2 exit 1 fi echo "addon: $a" bash "addons/${a}.sh" done } list() { echo "profile '$PROFILE_NAME' wants: ${ADDONS:-none}" echo "available:" ls addons/*.sh 2>/dev/null | xargs -n1 basename | sed 's/\.sh$//' | sed 's/^/ /' } case "${1:-list}" in install) install ;; list) list ;; *) echo "usage: $0 [install|list]" >&2; exit 1 ;; esac