| @@ -1,6 +1,7 @@ | |||||
| #!/bin/sh | #!/bin/sh | ||||
| RED='\033[1;31m' | RED='\033[1;31m' | ||||
| YELLOW='\033[1;33m' | |||||
| GREEN='\033[1;32m' | GREEN='\033[1;32m' | ||||
| CYAN='\033[1;36m' | CYAN='\033[1;36m' | ||||
| NC='\033[0m' | NC='\033[0m' | ||||
| @@ -9,8 +10,13 @@ info() { | |||||
| echo -e "${CYAN}$1${NC}" | echo -e "${CYAN}$1${NC}" | ||||
| } | } | ||||
| warn() { | |||||
| echo -e "${YELLOW}$1${NC}" | |||||
| } | |||||
| error() { | error() { | ||||
| echo -e "${RED}$1${NC}" | echo -e "${RED}$1${NC}" | ||||
| echo "See bootstrap.log for details" | |||||
| exit 1 | exit 1 | ||||
| } | } | ||||
| @@ -18,22 +24,49 @@ success() { | |||||
| echo -e "${GREEN}$1${NC}" | echo -e "${GREEN}$1${NC}" | ||||
| } | } | ||||
| echo "Boostrap starting..." >> bootstrap.log | |||||
| # Fish configuration | # Fish configuration | ||||
| info "Checking for fish shell..." | info "Checking for fish shell..." | ||||
| which fish 2> /dev/null | which fish 2> /dev/null | ||||
| fish_found=$? | fish_found=$? | ||||
| if [ $fish_found -eq 0 ]; | if [ $fish_found -eq 0 ]; | ||||
| then | then | ||||
| success "Fish shell found." | |||||
| echo -e "\nFish installation" >> bootstrap.log | |||||
| info " -> Installing virtualfish..." | info " -> Installing virtualfish..." | ||||
| pip install --user virtualfish || error "!! Failed to install virtualfish" | |||||
| pip install --user virtualfish >> boostrap.log 2>&1 || error "!! Failed to install virtualfish" | |||||
| info " -> Installing oh-my-fish..." | info " -> Installing oh-my-fish..." | ||||
| curl -L https://get.oh-my.fish > install || error "!! Failed to download oh-my-fish installer" | |||||
| curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install.sha256 > install.sha256 || error "!! Failed to download oh-my-fish checksum" | |||||
| sha256sum -c install.sha256 || error "!! Checksum failed for oh-my-fish." | |||||
| fish install --noninteractive || error "!! Install failed for oh-my-fish." | |||||
| fish -c 'omf install' || error "!! Oh-my-fish failed to install some packages" | |||||
| curl -L https://get.oh-my.fish > install 2>> bootstrap.log || error "!! Failed to download oh-my-fish installer" | |||||
| curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install.sha256 > install.sha256 2>> bootstrap.log || error "!! Failed to download oh-my-fish checksum" | |||||
| sha256sum -c install.sha256 >> bootstrap.log 2>&1 || error "!! Checksum failed for oh-my-fish." | |||||
| fish install --noninteractive >> bootstrap.log 2>&1 | |||||
| ret=$? | |||||
| if [ $ret -eq 2 ]; | |||||
| then | |||||
| warn " -> Oh-my-fish already installed, not reinstalling." | |||||
| elif [ $ret -eq 0 ]; | |||||
| then | |||||
| success " -> Oh-my-fish installed." | |||||
| else | |||||
| error " -> !! Install failed for oh-my-fish." | |||||
| fi | |||||
| rm install install.sha256 | |||||
| fish -c 'omf install' >> bootstrap.log 2>&1 || error "!! Oh-my-fish failed to install some packages" | |||||
| success "Successfully configured fish" | success "Successfully configured fish" | ||||
| else | else | ||||
| info "No fish shell available, skipping." | |||||
| warn "No fish shell available, skipping." | |||||
| fi | |||||
| # nvim config | |||||
| info "Checking for nvim..." | |||||
| which nvim 2> /dev/null | |||||
| nvim_found=$? | |||||
| if [ $nvim_found -eq 0 ]; | |||||
| then | |||||
| echo -e "\nNvim installation" >> bootstrap.log | |||||
| info " -> Setting up plugins..." | |||||
| curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim 2>> bootstrap.log | |||||
| nvim +PlugInstall +qall | |||||
| else | |||||
| warn "Nvim not available, skipping." | |||||
| fi | fi | ||||