#!/bin/bash declare -A configs=( ["$PWD/config/.bashrc"]="$HOME/.bashrc" ["$PWD/config/.inputrc"]="$HOME/.inputrc" ["$PWD/config/.gitconfig"]="$HOME/.gitconfig" ["$PWD/config/.tmux.conf"]="$HOME/.tmux.conf" ["$PWD/config/nvim"]="$HOME/.config/nvim" ["$PWD/config/alacritty"]="$HOME/.config/alacritty" ["$PWD/config/rofi"]="$HOME/.config/rofi" ["$PWD/config/dunst"]="$HOME/.config/dunst" ["$PWD/config/fontconfig"]="$HOME/.config/fontconfig" ["$PWD/config/sway"]="$HOME/.config/sway" ["$PWD/config/swaylock"]="$HOME/.config/swaylock" ["$PWD/config/waybar"]="$HOME/.config/waybar" ["$PWD/config/wlogout"]="$HOME/.config/wlogout" ["$PWD/config/i3"]="$HOME/.config/i3" ["$PWD/config/polybar"]="$HOME/.config/polybar" ["$PWD/config/picom.conf"]="$HOME/.config/picom.conf" ) bashCompletionsDir="$HOME/.config/bash-completions" usage() { echo "usage: (./)bootstrap.sh [-S][-R]" echo echo " -S installs all this shit" echo " -R removes all this shit" echo " -I downloads bash completions" } if [ $# -eq 0 ] ; then usage fi # Install all configs if [ "$1" = "-S" ] ; then # Create symlinks for config in "${!configs[@]}" do ln -s $config ${configs[$config]} done # Install packer.nvim mkdir ~/.local/share/nvim/site/pack git clone --depth 1 https://github.com/wbthomason/packer.nvim \ ~/.local/share/nvim/site/pack/packer/start/packer.nvim # Install vim plugins nvim -c "PackerInstall" fi # Remove all configs if [ "$1" = "-R" ] ; then cd $HOME for config in "${!configs[@]}" do rm -rf ${configs[$config]} done rm -rf "$bashCompletionsDir" fi # complete_alias is a script that allows to use completion in aliases declare -A bashCompletions=( ["complete_alias"]="https://raw.githubusercontent.com/cykerway/complete-alias/master/complete_alias" ["tmux"]="https://raw.githubusercontent.com/Bash-it/bash-it/master/completion/available/tmux.completion.bash" ["git"]="https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash" ) # Install bash completions defined in hashmap above if [ "$1" = "-I" ] ; then for cmp in "${!bashCompletions[@]}" do source=${bashCompletions[$cmp]} dest="$bashCompletionsDir/$cmp.bash" if [[ ! -f "$dest" ]] ; then echo "Downloading $cmp completion" curl "$source" -o "$dest" &> /dev/null fi done fi