#!/bin/bash source "$HOME/.dotfiles/script_helpers/all.sh" set -e cwd=$PWD platform=`uname` echo platform: $platform os_is_windows is_windows if [[ $is_windows -eq 1 ]]; then error "This is only supported on Linux or MacOS.\n" exit 1 fi setup_dotfile_repo() { if [ ! -d "$HOME/.dotfiles" ]; then printf "${YELLOW}Creating dotfiles symlink${NORMAL}\n" ln -s $cwd $HOME/.dotfiles fi # Used by various things (e.g. vim history) mkdir -p $HOME/tmp } link() { file=$1 link_file "$HOME/.dotfiles/$file" "$HOME/.$file" 0 } setup_git() { printf "Setting up git...\n" FILES=() FILES+=('gitconfig') FILES+=('githelpers') for file in "${FILES[@]}" do link "$file" done } setup_zsh() { printf "Setting up zsh...\n" sudo apt install zsh TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)') if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then if hash chsh >/dev/null 2>&1; then printf "\n${BLUE}Changing the default shell to zsh${NORMAL}\n" chsh -s $(grep /zsh$ /etc/shells | tail -1) else printf "\n${RED}Unable to change the shell because this system does not have chsh.\n" printf "${BLUE}If this is Windows then you probably want to run the bash installer.${NORMAL}\n" fi fi FILES=() FILES+=('zsh') FILES+=('zshrc') FILES+=('zshenv') FILES+=('zlogin') FILES+=('zprofile') for file in "${FILES[@]}" do link "$file" done } setup_vim() { printf "Setting up vim...\n" FILES=() FILES+=('vim') FILES+=('vimrc') for file in "${FILES[@]}" do link "$file" done } setup_misc() { printf "Setting up misc...\n" FILES=() FILES+=('curlrc') for file in "${FILES[@]}" do link "$file" done } # //////////////////////////////////////////////////////////////////////////////////////// # OSX setup_osx() { ./osx/install.sh } # //////////////////////////////////////////////////////////////////////////////////////// # Run setup_dotfile_repo setup_git setup_zsh setup_vim setup_misc if [[ $platform == 'Darwin' ]]; then printf "\n${BOLD}Running the OS X installer${NORMAL}\n" setup_osx fi