diff --git a/.config/yadm/bootstrap b/.config/yadm/bootstrap new file mode 100755 index 0000000..8955641 --- /dev/null +++ b/.config/yadm/bootstrap @@ -0,0 +1,24 @@ +#!/bin/bash + +# Save this file as ~/.config/yadm/bootstrap and make it executable. It will +# execute all executable files (excluding templates and editor backups) in the +# ~/.config/yadm/bootstrap.d directory when run. + +set -eu + +# Directory to look for bootstrap executables in +BOOTSTRAP_D="${BASH_SOURCE[0]}.d" + +if [[ ! -d "$BOOTSTRAP_D" ]]; then + echo "Error: bootstrap directory '$BOOTSTRAP_D' not found" >&2 + exit 1 +fi + +find -L "$BOOTSTRAP_D" -type f | sort | while IFS= read -r bootstrap; do + if [[ -x "$bootstrap" && ! "$bootstrap" =~ "##" && ! "$bootstrap" =~ "~$" ]]; then + if ! "$bootstrap"; then + echo "Error: bootstrap '$bootstrap' failed" >&2 + exit 1 + fi + fi +done diff --git a/.config/yadm/bootstrap.d/001_homebrew b/.config/yadm/bootstrap.d/001_homebrew new file mode 100755 index 0000000..ef6a23a --- /dev/null +++ b/.config/yadm/bootstrap.d/001_homebrew @@ -0,0 +1,18 @@ +#!/bin/sh + +system_type=$(uname -s) + +if [ "$system_type" = "Darwin" ]; then + + # install homebrew if it's missing + if ! command -v brew >/dev/null 2>&1; then + echo "Installing homebrew" + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + fi + + if [ -f "$HOME/.Brewfile" ]; then + echo "Updating homebrew bundle" + brew bundle --global + fi + +fi