dotfiles/.zshrc

93 lines
2.8 KiB
Bash
Raw Normal View History

#!/bin/zsh
#### ZSHRC - Setting up the Shell
##
## Almost all actual setup is being done with the help of individual files
## in the .zsh.d/ directory. They follow a specific order:
##
## 00-09 are bootstrapping the zsh environment, setting aliases and sane
## shell defaults which should need no changes
## 10-19 allow custom bootstrapping of things that need to be set before any
## zsh plugins are loaded (in my case, theme environment vars, etc)
## 20-29 are run *during* zgen setup and can include plugins to be loaded
## 30-99 are run after plugins are loaded and can be configured
## in whatever way you wish
##
## Most of them are documented, and they try to have sensible naming.
## If you want to supply your own directory of zsh config files you can do so
## by setting the ZSH_CONFIG_DIR environment variable. You can also drop
## configuration files into the config dir without any numbers prepended, they
## will be run after numbered ones (in a random order) if you uncomment the
## corresponding line below.
## DEBUG INFORMATION
#
# ZSH_SETUP_SHOW_DEBUG="true"
#
# Uncomment the above line to get debug information during the script setup.
print_dbg() {
if [ -z $ZSH_SETUP_SHOW_DEBUG ]; then
return
fi
printf $@
2019-02-04 02:32:45 +00:00
}
2018-12-19 11:38:19 +00:00
# Set ZSH_CONFIG_DIR to default to ~/.zsh.d, or let user override
# Exit early if no configuration directory has been found
if [ ! -d ${ZSH_CONFIG_DIR:="$HOME/.zsh.d"} ]; then
# If the user explicitly overrode the path give him an error
if [ ! $ZSH_CONFIG_DIR = "$HOME/.zsh.d" ]; then
printf "\$ZSH_CONFIG_DIR=$ZSH_CONFIG_DIR/ does not exist.\n"
2019-02-04 02:32:45 +00:00
fi
PS1="$HOME $ "
return
2019-02-04 02:32:45 +00:00
fi
2018-12-19 11:38:19 +00:00
# //TODO: Prints error when -no- files are found
# Load bootstrap settings (00-19) before plugin initialization
if [ -n "$(/bin/ls $ZSH_CONFIG_DIR/)" ]; then
GLOB=($ZSH_CONFIG_DIR/[0-1][0-9]-*)
for dotfile in $GLOB; do
print_dbg "Phase 1: $dotfile\n" #//DEBUG
if [ -r "${dotfile}" ]; then
source "${dotfile}"
fi
2019-02-04 02:32:45 +00:00
done
unset GLOB
2019-02-04 02:32:45 +00:00
fi
2018-12-19 11:38:19 +00:00
# set up zgen - load external zsh plugins
if [ -f ~/.zgenrc ]; then
print_dbg "Phase 2: Setting up ZGEN\n" #//DEBUG
source ~/.zgenrc
fi
2018-12-19 11:38:19 +00:00
# Load additional settings (30-99) after plugin initialization
if [ -n "$(/bin/ls $ZSH_CONFIG_DIR/)" ]; then
GLOB=($ZSH_CONFIG_DIR/[3-9][0-9]-*)
for dotfile in $GLOB; do
print_dbg "Phase 3: $dotfile\n" #//DEBUG
2019-02-04 02:32:45 +00:00
if [ -r "${dotfile}" ]; then
source "${dotfile}"
fi
done
unset GLOB
2019-02-04 02:32:45 +00:00
fi
# Uncomment this section to enable execution of arbitrarily named config files
# if [ -n "$(/bin/ls $ZSH_CONFIG_DIR/)" ]; then
# GLOB=($ZSH_CONFIG_DIR/[:alpha:]*)
# for dotfile in $GLOB; do
# print_dbg "Phase 4, Alphabetic: $dotfile\n" #//DEBUG
# if [ -r "${dotfile}" ]; then
# source "${dotfile}"
# fi
# done
# unset GLOB
2019-02-04 02:32:45 +00:00
# fi
2018-12-19 11:38:19 +00:00
unset ZSH_CONFIG_DIR
2019-02-04 02:32:45 +00:00
export GOPATH="$HOME/Code/go"
export PATH="$PATH:$GOPATH/bin"