#!/usr/bin/env bash function find_package_manager() { hash pacman &> /dev/null && echo pacman && return 0 hash apt-get &> /dev/null && echo apt-get && return 0 hash apk &> /dev/null && echo apk && return 0 return 1 } function install_package() { package_manager=$(find_package_manager) if [[ $? -ne 0 ]]; then echo -e "\033[38;5;1mCould not find package manager\033[0;5;0m" >&2 return 1 fi case $package_manager in pacman) sudo pacman -S --noconfirm $* return $? ;; apt-get) sudo apt-get install -y $* return $? ;; apk) sudo apk add $* return $? ;; esac return 2 } function check_and_install() { if hash $1 &> /dev/null; then echo -e "\033[38;5;2m$1 is already installed.\033[0;5;0m" else echo -e "\033[38;5;2mInstalling $1.\033[0;5;0m" if install_package $1; then echo -e "\033[38;5;2m$1 installed.\033[0;5;0m" else echo -e "\033[38;5;1mInstalling $1 failed.\033[0;5;0m" >&2 fi fi } function stow_cfg() { echo -e "\033[38;5;2mStowing $1" stow $1 } package_manager=$(find_package_manager) if [[ $? -ne 0 ]]; then echo -e "\033[38;5;1mCould not find package manager" >&2 else echo -e "\033[38;5;2mPackage manager: $package_manager" fi bd=$(dirname $0) cd "$bd" echo -e "\033[38;5;2mBase Directory: $(pwd)\n\033[0;5;0m" echo -e "\033[38;5;2mInstalling packages\n\033[0;5;0m" check_and_install stow check_and_install bash check_and_install tmux check_and_install vim check_and_install curl check_and_install git check_and_install jq echo -e "\n\033[38;5;2mStowing config\033[0;5;0m\n" mv ~/.tmux.conf{,.old} &> /dev/null mv ~/.tmux{,.old} &> /dev/null stow_cfg tmux mv ~/.vimrc{,.old} &> /dev/null mv ~/.vim{,.old} &> /dev/null stow_cfg vim echo -e "\n\033[38;5;2mSetting up wish\033[0;5;0m\n" mkdir -p ~/.config/ git clone https://gitlab.com/ceda_ei/wish.git ~/.config/wish mv ~/.bashrc{,.old} &> /dev/null mv ~/.bash_profile{,.old} &> /dev/null stow_cfg bash echo -e "\n\033[38;5;2mSetting up tmux plugins\033[0;5;0m\n" mkdir -p ~/.tmux/plugins/ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm ~/.tmux/plugins/tpm/bin/install_plugins echo -e "\n\033[38;5;2mSetting up vim plugins\033[0;5;0m\n" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim vim +PlugInstall +qall echo -e "\n\033[38;5;2mSetting up bin-client\033[0;5;0m\n" git clone https://git.webionite.com/ceda_ei/bin-client ~/bin-client echo -e "\n\033[38;5;2mComplete\033[0;5;0m\n"