##################################################################### function ZSH__SETUP() { ZSH__SET_DEFAULT_SHELL ZSH__SOURCE_RC ZSH__SET_LOCAL_CONFIG } ##################################################################### function ZSH__SET_DEFAULT_SHELL() { local DEFAULT_SHELL=$(awk -F: -v user="$USER" '$1 == user {print $NF}' /etc/passwd) CHECK 'setting zsh as default shell' sudo chsh -s $(which zsh) $(whoami)>>$LOG 2>&1 \ && OK || WARN 'failed to set zsh as default shell' } function ZSH__SOURCE_RC() { local LOCAL_ZSHRC="$HOME/.zshrc"; local SOURCE_LINE="source $DOTWRYN_PATH/zsh/rc"; grep -q "^$SOURCE_LINE$" $LOCAL_ZSHRC && { STATUS 'already set up zshrc' } || { CHECK 'setting up zshrc' echo $SOURCE_LINE >> $LOCAL_ZSHRC \ && OK || WARN } } function ZSH__SET_LOCAL_CONFIG() { local DEFAULT_CONFIG="$DOTWRYN_PATH/env/env.zsh" local LOCAL_CONFIG="$HOME/.config/wryn/env/env.zsh" [ -f $LOCAL_CONFIG ] && { WARNING "local zsh env configuration ($LOCAL_CONFIG)" USER_PROMPT 'overwrite? [y/N]' READ_K yn [[ $yn =~ ^[yY] ]] && { CHECK "backing up local copy ($LOCAL_CONFIG.bak)" mv "$LOCAL_CONFIG" "$LOCAL_CONFIG.bak" && OK || WARN } || { STATUS 'skipping' return } } CHECK "setting zsh configuration file ($LOCAL_CONFIG)" { echo "source $DEFAULT_CONFIG" echo -e '\n#\n# .wryn configuration overrides\n#\n' sed 's/^[^#].*/#&/' $DEFAULT_CONFIG } > $LOCAL_CONFIG && OK || WARN }