#!/usr/bin/env bash

###
# Update system packages
update_system() {
  echo 'Updating system'
  sudo apt-get update && sudo apt-get upgrade -y
  sudo apt-get install -y git curl
}

###
# Install ZSH shell
install_zsh() {
  echo 'Installing ZSH'
  # Install and set zsh as shell
  sudo apt-get install -y zsh

  # Change shell to Zsh for the vagrant user
  sudo chsh -s /bin/zsh vagrant
}

###
# Install Oh My ZSH! plugin framework
install_ohmyzsh() {
  echo "Installing Oh-My-ZSH!"
  git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
  cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

  # Change the Oh-My-Zsh! default configuration.
  sed -i 's@ZSH_THEME="robbyrussell"@ZSH_THEME="blinks"@g' ~/.zshrc
  sed -i 's@# CASE_SENSITIVE="true"@CASE_SENSITIVE="true"@g' ~/.zshrc
  sed -i 's@# COMPLETION_WAITING_DOTS="true"@COMPLETION_WAITING_DOTS="true"@g' ~/.zshrc
  sed -i 's@# DISABLE_UNTRACKED_FILES_DIRTY="true"@DISABLE_UNTRACKED_FILES_DIRTY="true"@g' ~/.zshrc
  sed -i 's@# HIST_STAMPS="mm/dd/yyyy"@HIST_STAMPS="yyyy-mm-dd"@g' ~/.zshrc
  sed -i 's@plugins=(git)@plugins=(git dirhistory common-aliases command-not-found ruby)@g' ~/.zshrc

  # Include .profile settings
  echo -e "\n# Include .profile settings"  >> ~/.zshrc
  echo -e "source ~/.profile\n"  >> ~/.zshrc
}

setup() {
  update_system
  install_zsh
  install_ohmyzsh
}

setup "$@"