yadm-dev / yadm

Yet Another Dotfiles Manager
https://yadm.io/
GNU General Public License v3.0
5.15k stars 177 forks source link

Add example of bootstrap that can be used to run other scripts #476

Open plandem opened 11 months ago

plandem commented 11 months ago

What does this PR do?

Save this file as ~/.config/yadm/bootstrap and make it executable. It expects environment variable file with a name of shell script to execute. file can be relative to ~/.config/yadm/ or has full path.

It also adds some helpers (e.g. install, confirm, command_exists, source_if_exists ) that can be used in sourced files.

Usage:

file=install yadm bootstrap

or

file=~/.config/yadm/install yadm bootstrap

where ~/.config/yadm/install can be like this:

[[ ! $(type -t install) = 'function' ]] && echo "Usage: file=$(basename "$0") yadm bootstrap" && exit 1

confirm yes 'softwareupdate --agree-to-license --install --all' "$(info 'Install ' warning 'OSX updates')"
install 'brew' '/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"'

brew bundle --global

What issues does this PR fix or reference?

[A list of related issues / pull requests.]

Previous Behavior

New Behavior

Have tests been written for this change?

No

Have these commits been signed with GnuPG?

Yes


Please review yadm's Contributing Guide for best practices.