mas/script/bootstrap

56 lines
1 KiB
Text
Raw Normal View History

#!/bin/bash -eu
#
# script/bootstrap
# mas
#
2021-03-22 00:42:26 +00:00
# Installs development dependencies and builds project dependencies.
#
mas_dir="$(readlink -fn "$(dirname "${BASH_SOURCE:-"${0}"}")/..")"
if ! cd -- "${mas_dir}"; then
printf $'Error: Could not cd into mas directory: %s\n' "${mas_dir}" >&2
exit 1
fi
function usage {
echo "Usage: bootstrap [-f]"
echo " -f option enables frozen mode"
exit 1
}
frozen=''
# Detect presence of `-f` frozen option
while getopts "f" opt; do
case "${opt}" in
f)
frozen='-f'
;;
*)
usage 1>&2
;;
esac
done
script/clean
printf $'==> 👢 Bootstrapping (%s)\n' "$(script/version)"
# Install Homebrew tools
if [[ "${frozen}" == "-f" ]]; then
# --no-lock Don't touch Brewfile.lock.json
brew bundle install --no-lock --no-upgrade --verbose
else
# Allow upgrades
rm -f Brewfile.lock.json
brew bundle install --verbose
fi
if [[ ! -x "$(command -v mise)" ]]; then
brew install mise
fi
mise settings set experimental true
mise install --verbose
mise list --verbose