42 lines
1.8 KiB
Bash
42 lines
1.8 KiB
Bash
#!/usr/bin/env bash
|
|
# @file macOS Common Dependencies
|
|
# @brief Ensures common system dependencies are installed via Homebrew on macOS
|
|
# @description
|
|
# This script ensures packages that are commonly used by other packages or needed by Install Doctor, are installed
|
|
# via Homebrew. The list of packages is defined in `home/.chezmoitemplates/darwin/Brewfile`.
|
|
|
|
# darwin/Brewfile hash: {{ include (joinPath ".chezmoitemplates" "darwin" "Brewfile") | sha256sum }}
|
|
|
|
{{ includeTemplate "universal/profile-before" }}
|
|
{{ includeTemplate "universal/logg-before" }}
|
|
|
|
### Ensure system is macOS
|
|
if [ -d /Applications ] && [ -d /System ]; then
|
|
### Ensure environment variables are appropriately configured
|
|
export VOLTA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/volta"
|
|
export PATH="$VOLTA_HOME/bin:$PATH"
|
|
|
|
### Check for presence of Homebrew
|
|
if command -v brew > /dev/null; then
|
|
### Install base dependencies
|
|
logg 'Installing base dependencies for macOS using `brew bundle`'
|
|
logg info 'Dependencies: age asdf jq node glow go go-task/tap/go-task gnupg gum m-cli progress volta yq m-cli yq zx'
|
|
logg info 'GNU compatibility dependencies: coreutils findutils'
|
|
|
|
brew bundle --verbose --no-lock --file=/dev/stdin <<EOF
|
|
{{ includeTemplate "darwin/Brewfile" . -}}
|
|
EOF
|
|
|
|
### Ensure Python version is 3.11 or higher
|
|
PYTHON_VERSION="$(python3 --version | sed 's/Python //')"
|
|
MIN_PYTHON_VERSION="3.11.0"
|
|
if [ "$(printf '%s\n' "$MIN_PYTHON_VERSION" "$PYTHON_VERSION" | sort -V | head -n1)" = "$MIN_PYTHON_VERSION" ]; then
|
|
logg info "Minimum Python version satisfied (minimum: $MIN_PYTHON_VERSION, current: $PYTHON_VERSION)"
|
|
else
|
|
logg info 'Updating Python 3 version with `brew link --overwrite python@3.11`'
|
|
brew link --overwrite python@3.11
|
|
fi
|
|
else
|
|
logg error '`brew` was not found in the PATH'
|
|
fi
|
|
fi
|