diff --git a/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl index dc98964f..0bb8ea79 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_05-postfix.sh.tmpl @@ -33,19 +33,23 @@ if command -v postfix > /dev/null; then ### Add the SendGrid Postfix settings to the Postfix configuration if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf" ]; then CONFIG_FILE=/etc/postfix/main.cf - if cat "$CONFIG_FILE" | grep '### INSTALL DOCTOR MANAGED'; then + if cat "$CONFIG_FILE" | grep '### INSTALL DOCTOR MANAGED' > /dev/null; then logg info 'Removing Install Doctor-managed block of code in /etc/postfix/main.cf block' START_LINE="$(echo `grep -n -m 1 "### INSTALL DOCTOR MANAGED ### START" "$CONFIG_FILE" | cut -f1 -d ":"`)" END_LINE="$(echo `grep -n -m 1 "### INSTALL DOCTOR MANAGED ### END" "$CONFIG_FILE" | cut -f1 -d ":"`)" - if command -v gsed > /dev/null; then - gsed -i "$START_LINE,$END_LINEd" "$CONFIG_FILE" + if [ -n "$START_LINE" ] && [ -n "$END_LINE" ]; then + if command -v gsed > /dev/null; then + sudo gsed -i "${START_LINE},${END_LINE}d" "$CONFIG_FILE" + else + sudo sed -i "${START_LINE},${END_LINE}d" "$CONFIG_FILE" + fi else - sed -i "$START_LINE,$END_LINEd" "$CONFIG_FILE" + logg info 'No start-line or end-line detected - configuration appears to already be clean' fi fi ### Add Postfix main configuration - logg "Adding configuration from ${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf to /etc/postfix/main.cf" + logg "Adding the following configuration from ${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf to /etc/postfix/main.cf" cat "${XDG_CONFIG_HOME:-$HOME/.config}/postfix/main.cf" | sudo tee -a "$CONFIG_FILE" echo "" | sudo tee -a "$CONFIG_FILE" fi @@ -58,7 +62,7 @@ if command -v postfix > /dev/null; then sudo chmod 600 /etc/postfix/sasl_passwd logg info 'Updating Postfix hashmaps for /etc/postfix/sasl_passwd' sudo postmap /etc/postfix/sasl_passwd - elseThere was an error ensuring the Postfix-SendGrid dependencies were installed + else logg warn '~/.config/postfix/sasl_passwd file is missing' fi diff --git a/home/.chezmoiscripts/universal/run_onchange_after_32-gitomatic.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_32-gitomatic.sh.tmpl index 2ca197f2..a7fc8cfb 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_32-gitomatic.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_32-gitomatic.sh.tmpl @@ -34,17 +34,19 @@ function gitomaticSetup() { if [ -d /Applications ] && [ -d /System ]; then ### macOS logg info 'Copying `gitomatic` plist file to /Library/LaunchDaemons' - sudo cp -f "{{ .chezmoi.homeDir }}/.config/gitomatic/gitomatic.plist" /Library/LaunchDaemons/gitomatic.plist + sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/gitomatic/gitomatic.plist" /Library/LaunchDaemons/gitomatic.plist if ! sudo launchctl list | grep 'gitomatic' > /dev/null; then logg info 'Running `sudo launchctl load /Library/LaunchDaemons/gitomatic.plist`' sudo launchctl load /Library/LaunchDaemons/gitomatic.plist logg info 'Running `sudo launchctl start /Library/LaunchDaemons/gitomatic.plist`' sudo launchctl start /Library/LaunchDaemons/gitomatic.plist + else + logg info "gitomatic services appear to already be loaded" fi else ### Linux logg info 'Copying `gitomatic` systemd unit file to /etc/systemd/system/' - sudo cp -f "{{ .chezmoi.homeDir }}/.config/gitomatic/gitomatic.service" /etc/systemd/system/gitomatic.service + sudo cp -f "${XDG_CONFIG_HOME:-$HOME/.config}/gitomatic/gitomatic.service" /etc/systemd/system/gitomatic.service logg info 'Reloading systemd daemon' sudo systemctl daemon-reload logg info 'Enabling and starting `gitomatic` service' diff --git a/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl index 03419145..568c3188 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_57-netdata.sh.tmpl @@ -34,7 +34,6 @@ if command -v netdata-claim.sh > /dev/null; then ensureNetdataOwnership # netdata-claim.sh must be run as netdata user - logg info "Netdata room: $NETDATA_ROOM" sudo -H -u netdata bash -c 'export NETDATA_ROOM="{{- if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "NETDATA_ROOM")) -}}{{- includeTemplate "secrets/NETDATA_ROOM" | decrypt | trim -}}{{- else -}}{{- env "NETDATA_ROOM" -}}{{- end -}}" && export NETDATA_TOKEN="{{- if (stat (joinPath .chezmoi.sourceDir ".chezmoitemplates" "secrets" "NETDATA_TOKEN")) -}}{{- includeTemplate "secrets/NETDATA_TOKEN" | decrypt | trim -}}{{- else -}}{{- env "NETDATA_TOKEN" -}}{{- end -}}" && netdata-claim.sh -token="$NETDATA_TOKEN" -rooms="$NETDATA_ROOM" -url="{{ .netdataClaimURL }}"' # Kernel optimizations @@ -124,11 +123,17 @@ if command -v netdata-claim.sh > /dev/null; then ### Configure Netdata to gather information about Internet connection speed if command -v speedtest-cli > /dev/null; then - SPEEDTEST_GIT="${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest" - # Installing the script to generate report on Internet connection speed logg info 'Installing script to generate report on Internet connection speed' - sudo cp -f "$SPEEDTEST_GIT/speedtest.chart.sh" "/usr/libexec/netdata/charts.d/speedtest.chart.sh" + LIBEXEC_PATH="$(netdata -W buildinfo | grep 'Configure options' | sed "s/.*--libexecdir=\([^ \']*\).*/\1/")" + if [ -d /usr/libexec/netdata/charts.d ]; then + sudo cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest/speedtest.chart.sh" "/usr/libexec/netdata/charts.d/speedtest.chart.sh" + elif [ -d "$LIBEXEC_PATH/netdata/charts.d" ]; then + logg info "$LIBEXEC_PATH/netdata/charts.d present on system" + cp -f "${XDG_DATA_HOME:-$HOME/.local/share}/netdata-speedtest/speedtest.chart.sh" "$LIBEXEC_PATH/netdata/charts.d/speedtest.chart.sh" + else + logg warn "Failed to find appropriate directory to add Netdata speedtest chart script" + fi else logg warn '`speedtest-cli` is not available in the PATH or is not installed' fi diff --git a/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl index 830cbc45..ca8fdcf2 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_94-bash-it.sh.tmpl @@ -18,7 +18,8 @@ fi ### Include Bash It export BASH_IT="${XDG_DATA_HOME:-$HOME/.local/share}/bash_it" export BASH_IT_THEME="powerline" -if command -v powerline-daemon > /dev/null && [ -f "$BASH_IT/bash_it.sh" ]; then +if command -v powerline-daemon > /dev/null && [ -f "$BASH_IT/bash_it.sh" ] && ! command -v bash-it; then + logg info "Sourcing the bash_it.sh script" . "$BASH_IT/bash_it.sh" fi @@ -66,7 +67,6 @@ if command -v powerline > /dev/null && [ -f "$HOME/.bashrc" ]; then else logg warn 'The path specified by BASH_IT does not exist yet' fi - exit 0 else if ! command -v powerline > /dev/null; then logg warn '`powerline` is not available' diff --git a/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl b/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl index 5eba4d15..32ef35de 100644 --- a/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl +++ b/home/.chezmoiscripts/universal/run_onchange_after_97-cloudflare.sh.tmpl @@ -108,6 +108,8 @@ if [ -d /System ] && [ -d /Applications ] && command -v warp-cli > /dev/null; th if [ ! -n "$SSH_CONNECTION" ]; then logg info 'Requesting security authorization for Cloudflare trusted certificate' sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain "${XDG_DATA_HOME:-$HOME/.local/share}/warp/Cloudflare_CA.crt" + logg info 'Updating the OpenSSL CA Store to include the Cloudflare certificate' + echo | sudo tee -a /etc/ssl/cert.pem < "${XDG_DATA_HOME:-$HOME/.local/share}/warp/Cloudflare_CA.pem" else logg warn 'Session is SSH so adding Cloudflare encryption key to trusted certificates via the security program is being bypassed since it requires Touch ID / Password verification.' fi diff --git a/home/.chezmoitemplates/secrets/NETDATA_ROOM b/home/.chezmoitemplates/secrets/NETDATA_ROOM index c99d10cd..0f7a2bde 100644 --- a/home/.chezmoitemplates/secrets/NETDATA_ROOM +++ b/home/.chezmoitemplates/secrets/NETDATA_ROOM @@ -1,7 +1,7 @@ -----BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFUEgzWGZnOWtxVEoycVNj -VmlkRVlJUEdubTJMcjBoRUU0a3hPL1Rab2dFCnRKdmVnUWFqeldhZ1owZUVhOFYx -dXJ2ZGw2aGROdDVZdXE2VTBFRzlHU1EKLS0tIE9XblRqaFRGKy9SSzQrWGhaa2t5 -OFNVV09ReDRGdmxxNjRnYWl3V1BaZTQKTOQpNCuarmYP5O1u/TGEumL8R/CZz3fy -3VD5A2wyDm+AtO1AgvxNXMhaaG0IDJmiKHNh7sx0EdMcOzlxfWUhFziNTxo= +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAraXIzOE1xcmN3S0VwVjZh +Wi9EbTZrWnRHZEExK0lYNXpaZk15ZFY0ZWgwCnl0cG1zbHhhK3d1R1ZuZEFLRkxx +Y1VYN0RFRnJnUGMvNU9qZm52TGJnWVUKLS0tIG1xZUhId29JbmFBZTFtTk96QVdz +RWpKS3VtbXdBRUQvbHFYMWlldkNReGcKBxIqg0nm7yCaFPCO2ei9Jm+u0Wkq1pz5 +/qOcv2gpg1yhjcUbwOnvOQMav9R8dzyNAyo7vTwie//jxlKgXugng1JNBZ8= -----END AGE ENCRYPTED FILE----- \ No newline at end of file diff --git a/home/.chezmoitemplates/secrets/NETDATA_TOKEN b/home/.chezmoitemplates/secrets/NETDATA_TOKEN index 5260bdd0..6394370f 100644 --- a/home/.chezmoitemplates/secrets/NETDATA_TOKEN +++ b/home/.chezmoitemplates/secrets/NETDATA_TOKEN @@ -1,9 +1,9 @@ -----BEGIN AGE ENCRYPTED FILE----- -YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5VnRDbWNwTE4yRkRWSVBW -UEo5SW96aVZVNzloMFJKVVJZdDNPa2xaYVNZCmRWQWZHYmdnc3JUUHRtS0d6Y1Nn -SGFDc3plemxtakFxdksrcysxVmc3czgKLS0tIEp6MDB5OXRMczhoMUdGRlFXbVk3 -em9ZeGowcll5ZVJ2RmNZdVdZaWZoSFUKSq3T5Yt7DczaiK1GhVAA663mlDp5Ncqy -0U3IQmTrtArGdmGqE71tcnm7YgBdtwCQuEz4nzKpFigOvJZv2QDW733hZZzK3L+s -BCKlgvWvy5iVZtFpznQNrm0at39AIXyUQ9fI6X4DB5NoDbAILHPysceKrH/XbW6x -ecvVao6//IpEgDGXjJXnZ+puvw6VFDRfdF1cZdFyZGPLioYy6HdHENjmI9QBE0s= +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRK1VoSGw5SzZzd0pjYktv +QjVGdDA1MXFtSkMyZ2R6Q1dZbHhPOEFLUHpvCmcxMnIwYWJjcXM0SUhodUFkd3Q2 +YW9CajhHaXVRZzhxZGdZendTS0RycncKLS0tIGtpVVFxSFRJbWR3WHA2OXYxK0lH +TlRVVkRJSGU4eWxBNGxPSzZ5aWVrM1UK7nq6nhnXrv1Pk5JQTiLCSyxs25sigSd1 +XxReQf5f/lOBMYa7nEXQ7re4yIK7D5tq6f5diM3KP3EpcHa3k0RIpAfTYQNivGTw +nAWGVYtIMvH+Ilyv1mu33CYYXc0th6Rlysi8sM6/r0O6zVOf9Hvuftb6PMQmh4qw +Xqt4VX35OPTX/TLHiuMtO95ClkIznbqsQJkkMycbd0WyLUV1YgF39J8s2qO6iHs= -----END AGE ENCRYPTED FILE----- \ No newline at end of file diff --git a/home/dot_bashrc b/home/dot_bashrc index 9448e844..ac4f2942 100644 --- a/home/dot_bashrc +++ b/home/dot_bashrc @@ -9,9 +9,7 @@ fi ### Sensible Bash # Source: https://github.com/mrzool/bash-sensible -if [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/shell/sensible.bash" ]; then - . "${XDG_DATA_HOME:-$HOME/.local/share}/shell/sensible.bash" -fi +[ ! -f "${XDG_DATA_HOME:-$HOME/.local/share}/shell/sensible.bash" ] || . "${XDG_DATA_HOME:-$HOME/.local/share}/shell/sensible.bash" # Detect support for advanced terminal features if [ "$0" = 'bash' ] || [ "$0" = '/bin/bash' ]; then @@ -19,22 +17,16 @@ if [ "$0" = 'bash' ] || [ "$0" = '/bin/bash' ]; then fi ### Import Common Settings -if [ -f "$HOME/.config/shell/profile.sh" ]; then - . "$HOME/.config/shell/profile.sh" -fi +[ ! -f "$HOME/.config/shell/profile.sh" ] || . "$HOME/.config/shell/profile.sh" ### Ble.sh [[ $- == *i* ]] && source "${XDG_DATA_HOME:-$HOME/.local/share}/blesh/ble.sh" --noattach --rcfile "${XDG_DATA_CONFIG:-$HOME/.config}/blesh/bleshrc" ### /etc/bashrc -if [ -f /etc/bashrc ]; then - . /etc/bashrc -fi +[ ! -f /etc/bashrc ] || . /etc/bashrc ### Java (asdf) -if [ -f "$ASDF_DATA_DIR/plugins/java/set-java-home.bash" ]; then - . "$ASDF_DATA_DIR/plugins/java/set-java-home.bash" -fi +[ ! -f "$ASDF_DATA_DIR/plugins/java/set-java-home.bash" ] || . "$ASDF_DATA_DIR/plugins/java/set-java-home.bash" ### Escape if shell not interactive case $- in diff --git a/home/dot_config/shell/exports.sh.tmpl b/home/dot_config/shell/exports.sh.tmpl index 60ec239e..2dcca348 100644 --- a/home/dot_config/shell/exports.sh.tmpl +++ b/home/dot_config/shell/exports.sh.tmpl @@ -294,6 +294,9 @@ export NETRC="$XDG_CONFIG_HOME/netrc" ### Navi export NAVI_CONFIG="$XDG_CONFIG_HOME/navi/config.yaml" +### Nix +export NIX_SSL_CERT_FILE="${XDG_DATA_HOME:-$HOME/.local/share}/warp/Cloudflare_CA.crt" + ### nnn if command -v nnn > /dev/null; then alias n='nnn -de' diff --git a/home/dot_local/bin/setup/executable_keybase b/home/dot_local/bin/setup/executable_keybase new file mode 100644 index 00000000..e69de29b diff --git a/home/dot_zshrc b/home/dot_zshrc index 7df1dd8a..13a3e1c6 100644 --- a/home/dot_zshrc +++ b/home/dot_zshrc @@ -8,7 +8,7 @@ export LC_ALL="en_US.UTF-8" export BASH_SUPPORT=true ### Import Common Settings -[[ ! -f "$HOME/.config/shell/profile.sh" ]] || source "$HOME/.config/shell/profile.sh" +[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile.sh" ] || source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile.sh" # If not running interactively, don't do anything case $- in @@ -34,7 +34,7 @@ export ADOTDIR="${XDG_DATA_HOME:-$HOME/.local/share}/antigen" [[ ! -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] || source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ### Fig -[[ -f "$HOME/.fig/shell/zshrc.pre.zsh" ]] && source "$HOME/.fig/shell/zshrc.pre.zsh" +[ ! -f "$HOME/.fig/shell/zshrc.pre.zsh" ] || source "$HOME/.fig/shell/zshrc.pre.zsh" # --------------------------------- SETTINGS ---------------------------------- setopt AUTO_CD @@ -58,9 +58,7 @@ setopt PROMPT_SUBST setopt SHARE_HISTORY # ZSH completion system -if [ ! -d "$XDG_CACHE_HOME/zsh" ]; then - mkdir -p "$XDG_CACHE_HOME/zsh" -fi +[ -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh" ] || mkdir -p "${XDG_CACHE_HOME:-$HOME/.cache}/zsh" zstyle ':completion:*:*:*:*:*' menu select zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache" @@ -259,9 +257,8 @@ xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty) esac ### Antigen -if [ -f "$HOME/.local/scripts/antigen.zsh" ]; then - source "$HOME/.local/scripts/antigen.zsh" -fi +[ ! -f "$HOME/.local/scripts/antigen.zsh" ] || source "$HOME/.local/scripts/antigen.zsh" + if command -v antigen > /dev/null; then # Fix for oh-my-zsh overriding exa aliases export DISABLE_LS_COLORS=true @@ -317,14 +314,12 @@ if command -v antigen > /dev/null; then antigen bundle ng antigen bundle node-docs antigen bundle nomad - # antigen bundle npm # Added by bash completions script antigen bundle oc antigen bundle pass # antigen bundle pep8 antigen bundle pip # antigen bundle pipenv antigen bundle pm2 - # antigen bundle poetry # Added by bash completions script antigen bundle qrcode antigen bundle react-native antigen bundle redis-cli @@ -366,15 +361,11 @@ if command -v antigen > /dev/null; then antigen bundle zsh-interactive-cd antigen bundle zsh-navigation-tools antigen bundle zsh-users/zsh-completions src - if command -v fzf > /dev/null; then - antigen bundle aloxaf/fzf-tab - fi + ! command -v fzf > /dev/null || antigen bundle aloxaf/fzf-tab antigen bundle marlonrichert/zsh-autocomplete@main antigen bundle zsh-users/zsh-autosuggestions antigen bundle zsh-users/zsh-syntax-highlighting - if [ -d /Applications ] && [ -d /System ]; then - antigen bundle zsh-apple-touchbar - fi + [ ! -d /Applications ] || antigen bundle zsh-apple-touchbar antigen theme romkatv/powerlevel10k antigen apply fi @@ -383,30 +374,23 @@ fi zstyle ':autocomplete:*' list-lines 14 zstyle ':autocomplete:history-search:*' list-lines 14 zstyle ':autocomplete:history-incremental-search-*:*' list-lines 14 -if command -v fzf > /dev/null; then - zstyle ':autocomplete:*' fzf-completion yes -fi +! command -v fzf > /dev/null || zstyle ':autocomplete:*' fzf-completion yes ### Homebrew ZSH Completions # Must be sourced before compinit / Oh-My-ZSH inclusion export FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:$FPATH" -if [ -d "$HOMEBREW_PREFIX/share/zsh-completions" ]; then - export FPATH="$HOMEBREW_PREFIX/share/zsh-completions:$FPATH" -fi +[ ! -d "$HOMEBREW_PREFIX/share/zsh-completions" ] || export FPATH="$HOMEBREW_PREFIX/share/zsh-completions:$FPATH" +[ ! -d "${XDG_DATA_HOME:-$HOME/.local/share}/zsh-completion" ] || export FPATH="${XDG_DATA_HOME:-$HOME/.local/share}/zsh-completion:$FPATH" ### ZSH compinit autoload -Uz +X compinit && compinit -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION" ### Bash Completions autoload -U +X bashcompinit && bashcompinit -if [ -f "/usr/local/etc/profile.d/bash_completion.sh" ]; then - . "/usr/local/etc/profile.d/bash_completion.sh" -fi +[ ! -f "/usr/local/etc/profile.d/bash_completion.sh" ] || source "/usr/local/etc/profile.d/bash_completion.sh" ### Atuin -if command -v atuin > /dev/null; then - eval "$(atuin init zsh)" -fi +! command -v atuin > /dev/null || eval "$(atuin init zsh)" ### Carapace if command -v carapace > /dev/null; then @@ -416,45 +400,33 @@ if command -v carapace > /dev/null; then fi ### Cod -if command -v cod > /dev/null; then - source <(cod init $$ zsh) -fi +! command -v cod > /dev/null || source <(cod init $$ zsh) ### direnv -if command -v direnv > /dev/null; then - eval "$(direnv hook zsh)" -fi +! command -v direnv > /dev/null || eval "$(direnv hook zsh)" ### Emplace # Error tracking: https://github.com/tversteeg/emplace/issues/375 -# if command -v emplace > /dev/null; then -# eval "$(emplace init zsh)" -# fi +# ! command -v emplace > /dev/null || eval "$(emplace init zsh)" ### Google Cloud SDK -if [ -f "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.zsh.inc" ]; then - source "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.zsh.inc" -fi -if [ -f "$HOMEBREW_PREFIX/share/google-cloud-sdk/completion.zsh.inc" ]; then - source "$HOMEBREW_PREFIX/share/google-cloud-sdk/completion.zsh.inc" -fi +[ ! -f "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.zsh.inc" ] || source "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.zsh.inc" +[ ! -f "$HOMEBREW_PREFIX/share/google-cloud-sdk/completion.zsh.inc" ] || source "$HOMEBREW_PREFIX/share/google-cloud-sdk/completion.zsh.inc" ### hiSHtory -if [ -f "${XDG_CONFIG_HOME:-$HOME/.config}/hishtory/config.zsh" ]; then - export PATH="$PATH:${XDG_CONFIG_HOME:-$HOME/.config}/hishtory" - source "${XDG_CONFIG_HOME:-$HOME/.config}/hishtory/config.zsh" -fi +export PATH="$PATH:${XDG_CONFIG_HOME:-$HOME/.config}/hishtory" +[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/hishtory/config.zsh" ] || source "${XDG_CONFIG_HOME:-$HOME/.config}/hishtory/config.zsh" ### Hoard if command -v hoard > /dev/null && [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/hoard/src/shell/hoard.zsh" ]; then - . "${XDG_DATA_HOME:-$HOME/.local/share}/hoard/src/shell/hoard.zsh" + source "${XDG_DATA_HOME:-$HOME/.local/share}/hoard/src/shell/hoard.zsh" fi ### iTerm2 -[ -f "$HOME/.local/scripts/iterm2.zsh" ] && source "$HOME/.local/scripts/iterm2.zsh" +[ ! -f "$HOME/.local/scripts/iterm2.zsh" ] || source "$HOME/.local/scripts/iterm2.zsh" ### Java (asdf) -[ -f "$ASDF_DATA_DIR/plugins/java/set-java-home.zsh" ] && source "$ASDF_DATA_DIR/plugins/java/set-java-home.zsh" +[ ! -f "$ASDF_DATA_DIR/plugins/java/set-java-home.zsh" ] || source "$ASDF_DATA_DIR/plugins/java/set-java-home.zsh" ### Mamba Forge (Faster Conda Drop-In Replacement) # TODO: Add support for Linux @@ -494,13 +466,13 @@ if [ -f /usr/local/bin/micromamba ]; then fi ### Navi (Ctrl+G) -command -v navi > /dev/null && eval "$(navi widget zsh)" +! command -v navi > /dev/null || eval "$(navi widget zsh)" ### Fig -[ -f "$HOME/.fig/shell/zshrc.post.zsh" ] && source "$HOME/.fig/shell/zshrc.post.zsh" +[ ! -f "$HOME/.fig/shell/zshrc.post.zsh" ] || source "$HOME/.fig/shell/zshrc.post.zsh" ### Powerline -[ -f "${XDG_CONFIG_HOME:-$HOME.config}/scripts/p10k.zsh" ] && source "$HOME/.local/scripts/p10k.zsh" +[ ! -f "${XDG_CONFIG_HOME:-$HOME.config}/scripts/p10k.zsh" ] || source "$HOME/.local/scripts/p10k.zsh" ### SDKMan if command -v brew > /dev/null && command -v sdkman-cli > /dev/null; then @@ -512,10 +484,10 @@ elif [ -f "$SDKMAN_DIR/bin/sdkman-init.sh" ]; then fi ### Up -[ -f "${XDG_DATA_HOME:-$HOME/.local/share}/up/up.sh" ] && source "${XDG_DATA_HOME:-$HOME/.local/share}/up/up.sh" +[ ! -f "${XDG_DATA_HOME:-$HOME/.local/share}/up/up.sh" ] || source "${XDG_DATA_HOME:-$HOME/.local/share}/up/up.sh" ### HashiCorp Vault -command -v vault > /dev/null && complete -o nospace -C vault vault +! command -v vault > /dev/null || complete -o nospace -C vault vault ### zoxide if command -v zoxide > /dev/null; then