From 3fd195ca4510e7249b66871b55e1fb31fb329c65 Mon Sep 17 00:00:00 2001 From: Wryn Wagner Date: Thu, 10 Sep 2020 19:38:42 +0000 Subject: [PATCH] installer overhaul --- config/colorschemes/vim/update_colorschemes | 4 + env/env.sh | 10 -- setup | 188 +++++++++++++++----- vim/my_colors.vim | 2 +- vim/rc.vim | 4 +- vim/rebuild_plugins | 47 +++-- 6 files changed, 186 insertions(+), 69 deletions(-) delete mode 100755 env/env.sh diff --git a/config/colorschemes/vim/update_colorschemes b/config/colorschemes/vim/update_colorschemes index ca04127..d48efad 100755 --- a/config/colorschemes/vim/update_colorschemes +++ b/config/colorschemes/vim/update_colorschemes @@ -1,2 +1,6 @@ #!/bin/bash +[ ! -d "$HOME/.vim" ] && mkdir "$HOME/.vim" +[ ! -d "$HOME/.vim/colors" ] && mkdir "$HOME/.vim/colors" + for file in $(find ./ -name \*.vim); do cp $file ~/.vim/colors/; done +echo "vim colorschemes updated" diff --git a/env/env.sh b/env/env.sh deleted file mode 100755 index 9274d6f..0000000 --- a/env/env.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# Default shell environment -LOCAL_OVERRIDES="$HOME/.config/wryn/env.sh" -[ -f "$LOCAL_OVERRIDES" ] \ - && source "$LOCAL_OVERRIDES" \ - || { - touch $LOCAL_OVERRIDES \ - && echo '#!/bin/sh' > $LOCAL_OVERRIDES \ - && echo '# Local overrides of .wryn environment variables '>> $LOCAL_OVERRIDES - } diff --git a/setup b/setup index 68f652f..493da3e 100755 --- a/setup +++ b/setup @@ -1,74 +1,176 @@ #!/bin/bash -[ ! -f "$HOME/.bashrc" ] && touch "$HOME/.bashrc"; -[ ! -f "$HOME/.vimrc" ] && touch "$HOME/.vimrc"; + +################################################################################ +### SHELL SETUP ################################################################ +################################################################################ [ ! -d "$HOME/.config" ] && mkdir "$HOME/.config"; [ ! -d "$HOME/.config/wryn" ] && mkdir "$HOME/.config/wryn"; -# Source RCs -grep '.wryn' $HOME/.bashrc >/dev/null 2>/dev/null \ - && echo already set up bash rc \ - || echo source $HOME/.wryn/bash/rc >> $HOME/.bashrc; +function SOURCE_DOTWRYN_RC { + local HOME_RC="$1"; + local WRYN_RC="$2"; -grep '.wryn' $HOME/.vimrc >/dev/null 2>/dev/null \ - && echo already set up vim rc \ - || echo source $HOME/.wryn/vim/rc.vim >> $HOME/.vimrc; + [ ! -f "$HOME/$HOME_RC" ] && touch "$HOME/$HOME_RC"; -grep '.wryn' $HOME/.zshrc >/dev/null 2>/dev/null \ - && echo already set up zsh rc \ - || echo source $HOME/.wryn/zsh/rc >> $HOME/.zshrc; + grep -q '\.wryn' "$HOME/$HOME_RC" \ + && echo "already set up $HOME_RC" \ + || { + echo "source $WRYN_RC" >> "$HOME/$HOME_RC"; + echo "successfully set up $HOME_RC"; + } +} +function SHELL__SETUP { + SOURCE_DOTWRYN_RC '.bashrc' '$HOME/.wryn/bash/rc' + which bash >/dev/null && "$HOME/.wryn/env/env.bash"; -# setup local environments -which sh >/dev/null && "$HOME/.wryn/env/env.sh"; -which bash >/dev/null && "$HOME/.wryn/env/env.bash"; -which zsh >/dev/null && "$HOME/.wryn/env/env.zsh"; + SOURCE_DOTWRYN_RC '.zshrc' '$HOME/.wryn/zsh/rc'; + which zsh >/dev/null && "$HOME/.wryn/env/env.zsh"; +} -LOCAL_VIM_ENV="$HOME/.config/wryn/env.vim" -[ ! -f "$LOCAL_VIM_ENV" ] \ - && { - touch "$LOCAL_VIM_ENV"; +################################################################################ +### VIM SETUP ################################################################## +################################################################################ + +function VIM__SETUP_ENVIRONMENT_VARIABLES() { + VIM_ENV="$HOME/.config/wryn/env.vim"; + + [ ! -f "$VIM_ENV" ] && { + touch "$VIM_ENV"; which google-chrome-stable \ - && echo 'let $WEBBROWSER="'$(which google-chrome-stable)'"' >> $LOCAL_VIM_ENV\ - || echo 'let $WEBBROWSER=""' >> $LOCAL_VIM_ENV; - + && echo 'let $WEBBROWSER="'$(which google-chrome-stable)'"' >> $VIM_ENV\ + || echo 'let $WEBBROWSER=""' >> $VIM_ENV; } || { echo 'vim environment variables already set up'; } +} +function VIM__UPDATE_COLORSCHEMES() { + pushd $HOME/.wryn/config/colorschemes/vim >/dev/null + ./update_colorschemes + popd >/dev/null +} + +function VIM__INSTALL_VUNDLE_PLUGINS() { + [ ! -d "$HOME/.vim" ] && mkdir "$HOME/.vim" + [ ! -d "$HOME/.vim/bundle" ] && mkdir "$HOME/.vim/bundle" + [ ! -d "$HOME/.vim/bundle/Vundle.vim" ] && { + echo "installing vundle"; + git clone https://github.com/VundleVim/Vundle.vim.git "$HOME/.vim/bundle/Vundle.vim"; + } + + echo "installing vundle plugins" + vim +PluginInstall +qall; + + echo "building plugins" + $HOME/.wryn/vim/rebuild_plugins; +} + +function VIM__SETUP() { + echo 'setting up vim'; + + SOURCE_DOTWRYN_RC '.vimrc' '$HOME/.wryn/vim/rc.vim'; + + VIM__SETUP_ENVIRONMENT_VARIABLES; + VIM__UPDATE_COLORSCHEMES; + VIM__INSTALL_VUNDLE_PLUGINS; + + echo 'vim setup complete'; +} + +#VIM__SETUP; + + +################################################################################ +### LINK CONFIGURATION FILES ################################################### +################################################################################ # setup config symlinks -[ -f "$HOME/.tmux.conf" ] && mv "$HOME/.tmux.conf" "$HOME/.tmux.conf.bak"; -ln -s "$HOME/.wryn/tmux/tmux.conf" "$HOME/.tmux.conf"; xfce4-panel --version >/dev/null 2>&1 \ && [ ! -f "$HOME/.xinitrc" ] \ && ln -s "$HOME/.wryn/config/xserver/xinitrc" "$HOME/.xinitrc"; -function SYMLINK_CONFIG() { - # $1 = config directory name - # $2 = filename - [ ! -d "$HOME/.config/$1" ] && mkdir "$HOME/.config/$1"; - [ -f "$HOME/.config/$1/$2" ] && mv "$HOME/.config/$1/$2" "$HOME/.config/$1/$2.bak"; - ln -s "$HOME/.wryn/config/$1/$2" "$HOME/.config/$1/$2"; +function CONFIG__BASIC_SYMLINK() { + local HOME_CONFIG="$1"; + local WRYN_CONFIG="$2"; + + mv "$HOME_CONFIG" "$HOME_CONFIG.bak"; # >/dev/null 2>&1; + ln -s "$WRYN_CONFIG" "$HOME_CONFIG"; } -function SYMLINK_RC() { - # $1 = path (from .wryn) to rc file - # $2 = system rc filename - [ ! -f "$HOME/.config/$2" ] && [ -f "$HOME/.wryn/$1" ] && ln -s "$HOME/.wryn/$1" "$HOME/.config/$2"; +function CONFIG__SYMLINK() { + local CONFIG_DIR="$1"; + local FILENAME="$2"; + + local HOME_CONFIG_DIR="$HOME/.config/$CONFIG_DIR"; + local HOME_CONFIG="$HOME_CONFIG_DIR/$FILENAME"; + + local WRYN_CONFIG="$HOME/.wryn/.config/$CONFIG_DIR/$FILENAME"; + + [ ! -d "$HOME_CONFIG_DIR" ] && mkdir "$HOME_CONFIG_DIR"; + + CONFIG__BASIC_SYMLINK $HOME_CONFIG $WRYN_CONFIG; } -SYMLINK_CONFIG "compton" "compton.conf"; -SYMLINK_CONFIG "i3" "config"; -SYMLINK_CONFIG "kitty" "kitty.conf"; -SYMLINK_CONFIG "kitty" "theme.conf"; -SYMLINK_RC "config/pylint/pylintrc" "pylintrc"; +function CONFIG__I3() { + CONFIG__SYMLINK "i3" "config"; -function terminfo_setup() { + echo "linked i3 configuration" +} + +function CONFIG__COMPTON() { + CONFIG__SYMLINK "compton" "compton.conf"; + + echo "linked compton configuration" +} + +function CONFIG__KITTY() { + CONFIG__SYMLINK "kitty" "kitty.conf"; + CONFIG__SYMLINK "kitty" "theme.conf"; + + echo "linked kitty configuration" +} + +function CONFIG__PYLINT() { + CONFIG__BASIC_SYMLINK "$HOME/.config/pylintrc" "$HOME/.wryn/config/pylint/pylintrc"; + + echo "linked pylint configuration" +} + +function CONFIG__TMUX() { + CONFIG__BASIC_SYMLINK "$HOME/.tmux.conf" "$HOME/.wryn/tmux/tmux.conf"; + + echo "linked tmux configuration" +} + +function CONFIG__TERMINFO() { + echo "adding terminfo files" for file in $(find "$HOME/.wryn/config/terminfo" -type f); do - tic -x $file; + tic -x $file >/dev/null 2>&1 || echo "failed to add $file" ; done } -terminfo_setup; + + +function CONFIG__SETUP() { + CONFIG__I3; + CONFIG__COMPTON; + CONFIG__KITTY; + + CONFIG__PYLINT; + CONFIG__TMUX; + + CONFIG__TERMINFO; +} + +################################################################################ +### RUN CONFIG ################################################################# +################################################################################ + +SHELL__SETUP; +VIM__SETUP; +CONFIG__SETUP; + +echo -e "\nsetup complete" diff --git a/vim/my_colors.vim b/vim/my_colors.vim index 2b481e2..1450f0e 100644 --- a/vim/my_colors.vim +++ b/vim/my_colors.vim @@ -1,4 +1,4 @@ -colorscheme $COLORSCHEME +silent! colorscheme $COLORSCHEME set t_Co=256 diff --git a/vim/rc.vim b/vim/rc.vim index 0aa4e3f..b560262 100644 --- a/vim/rc.vim +++ b/vim/rc.vim @@ -13,7 +13,9 @@ let mapleader = "\\" "let localmapleader = ',' " Load Vundle first -source $VIM_DIR/vundle.vim +if isdirectory(expand("$HOME/.vim/bundle/Vundle.vim")) + source $VIM_DIR/vundle.vim +endif source $VIM_DIR/global_sets.vim source $VIM_DIR/file_formatting.vim diff --git a/vim/rebuild_plugins b/vim/rebuild_plugins index 23dbd69..d27046f 100755 --- a/vim/rebuild_plugins +++ b/vim/rebuild_plugins @@ -1,22 +1,41 @@ #!/bin/bash -function updateCommandT() { - local COMMAND_T_DIR="$HOME/.vim/bundle/command-t/ruby/command-t/ext/command-t"; - [ ! -d $COMMAND_T_DIR ] && echo "Unable to locate command t build files" && exit 1; +function INSTALL() { + local CMD_NAME="$1" + local BUILD_DIR="$2" + local BUILD="$3" - cd $COMMAND_T_DIR; - ruby extconf.rb; - make; + echo "installing $CMD_NAME"; + [ ! -d $BUILD_DIR ] && { echo "unable to locate $CMD_NAME build files"; exit 1; } + + $BUILD >/dev/null 2>&1 \ + && echo "$CMD_NAME installation successful" \ + || echo "$CMD_NAME installation failed. Please attempt manual installation"; } -function buildYCM() { - python3 --version || "python3-dev required to build YouCompleteMe" && exit 1; - local YCM_DIR="$HOME/.vim/bundle/YouCompleteMe"; - [ ! -d $YCM_DIR ] && echo "Unable to locate YouCompleteMe build files" && exit 1; +function INSTALL_COMMAND_T() { + local CMD_NAME='CommandT' + local BUILD_DIR="$HOME/.vim/bundle/command-t/ruby/command-t/ext/command-t"; - cd $YCM_DIR; - python3 install.py; + function BUILD() { + cd $BUILD_DIR; + ruby extconf.rb; + make + } + + INSTALL $CMD_NAME $BUILD_DIR BUILD; } -#updateCommandT; -buildYCM; +function INSTALL_YCM() { + local CMD_NAME='YouCompleteMe'; + local BUILD_DIR="$HOME/.vim/bundle/YouCompleteMe"; + + function BUILD() { + python3 $BUILD_DIR/install.py; + } + + INSTALL $CMD_NAME $BUILD_DIR BUILD; +} + +#INSTALL_COMMAND_T; +INSTALL_YCM;