diff options
-rw-r--r-- | .zshrc | 59 |
1 files changed, 52 insertions, 7 deletions
diff --git a/.zshrc b/.zshrc index b7a3e7e..e9b83c4 100644 --- a/.zshrc +++ b/.zshrc @@ -1,6 +1,31 @@ # ~nebula/.zshrc, 2023 edition +# //// per-device configuration ///////////////////////////////////////////// # + +# Per-device configuration is kept here in dotfiles.git too, but it won't be +# activated just by linking .zshrc. You also need to link ~/.device_pre and +# ~/.device_post to the relevant per-device files under `device`. + +# All exports in pre-config are prefixed with `DEVICE_`, and are used to toggle +# features or identify installations in .zshrc or other scripts which are part +# of dotfiles.git. + +device_preconfig() { + source ~/.device_pre +} + +# The post-config file is intended to run commands that are so specialized to +# the relevant device that it wouldn't make sense to include as a toggleable +# feature in the main .zshrc. + +device_postconfig() { + source ~/.device_post +} + +device_preconfig + + # //// zsh configuration //////////////////////////////////////////////////// # if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then @@ -18,21 +43,41 @@ path+=("$HOME/bin") # -- GPG -- -export GPG_TTY=$(tty) +if [[ -v DEVICE_HAS_GPG ]]; then + export GPG_TTY=$(tty) +fi # -- Homebrew -- -eval "$(/opt/homebrew/bin/brew shellenv)" +if [[ -v DEVICE_HAS_HOMEBREW ]]; then + eval "$("$DEVICE_HOMEBREW_INSTALLATION"/bin/brew shellenv)" +fi # -- Node Version Manager -- -export NVM_DIR="$HOME/.nvm" -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" -[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" +if [[ -v DEVICE_HAS_NVM ]]; then + export NVM_DIR="$DEVICE_NVM_INSTALLATION" + [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" + [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" +fi # -- Python -- -path+=("$HOME/Library/Python/3.9/bin") -path+=("/Applications/Sublime Text.app/Contents/SharedSupport/bin") +if [[ -v DEVICE_HAS_PYTHON_3 ]]; then + PATH+=("$DEVICE_PYTHON_3_INSTALLATION/bin") +fi + +# -- Sublime Text -- + +if [[ -v DEVICE_HAS_SUBLIME_TEXT ]]; then + PATH+=("$DEVICE_SUBLIME_TEXT_INSTALLATION)/Contents/SharedSupport/bin") +fi + export PATH + + +# //// per-device configuration ///////////////////////////////////////////// # + +device_postconfig + |