#!/bin/bash set -u mkdir -p ~/.config/homedir-backup 2>/dev/null function linkfiles { for file in $@; do create_dir=false name=$(basename $file) dir=$(dirname $file) if [ "$dir" == "dotfiles" ] ; then targetdir="" elif [ "$( dirname $dir | cut -f1 -d/)" == "configfile" ] ; then targetdir="config/$(echo $dir | cut -f2- -d/)/" create_dir=true else targetdir="$dir/" fi if [ ! -L ~/.${targetdir}${name} ] ; then if $create_dir ; then mkdir -p ~/.${targetdir} fi if [ -f hosts/$(hostname -s)/${name} ] ; then dotfile="$(pwd)/hosts/$(hostname -s)/${name}" else dotfile="$(pwd)/$dir/${name}" fi mv -v ~/.${targetdir}${name} ~/.config/homedir-backup ln -s "$dotfile" ~/.${targetdir}${name} fi done } #linkfiles 'dotfiles/*' #git clone https://github.com/NvChad/NvChad ~/.config/nvim #nvim -c "autocmd User PackerComplete quitall" -c "PackerSync" #linkfiles 'config/*' set -x for file in $(find configfile -type f) ; do linkfiles $file done set +x exit # Install powerline if possible if which pip3 ; then pip3 install --user -U -r requirements.txt else [ ! -d ~/.bash-git-prompt ] && git clone https://github.com/nold360/bash-git-prompt.git ~/.bash-git-prompt fi # Install vundle plugin manager & plugins mkdir -p ~/.vim/bundle 2>/dev/null [ ! -d ~/.vim/bundle/Vundle.vim ] && git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim vim -c ":PluginInstall" -c ":q" -c ":q" # Tmux Plugin Manager mkdir -p ~/.tmux/plugins 2>/dev/null git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm grep -qE "^source.*$(pwd)/bashrc" ~/.bashrc || echo "source $(pwd)/bashrc" >> ~/.bashrc echo Done