diff options
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/install.sh | 98 | ||||
| -rw-r--r-- | tools/upgrade.sh | 43 | 
2 files changed, 104 insertions, 37 deletions
diff --git a/tools/install.sh b/tools/install.sh index c83a6f23d..4b1a6ba7e 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,52 +1,98 @@  set -e +# Use colors, but only if connected to a terminal, and that terminal +# supports them. +ncolors=$(tput colors) +if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then +  RED="$(tput setaf 1)" +  GREEN="$(tput setaf 2)" +  YELLOW="$(tput setaf 3)" +  BLUE="$(tput setaf 4)" +  BOLD="$(tput bold)" +  NORMAL="$(tput sgr0)" +else +  RED="" +  GREEN="" +  YELLOW="" +  BLUE="" +  BOLD="" +  NORMAL="" +fi +CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l) +if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then +  printf "${YELLOW}Zsh is not installed!${NORMAL} Please install zsh first!\n" +  exit +fi +unset CHECK_ZSH_INSTALLED +  if [ ! -n "$ZSH" ]; then    ZSH=~/.oh-my-zsh  fi  if [ -d "$ZSH" ]; then -  echo "\033[0;33mYou already have Oh My Zsh installed.\033[0m You'll need to remove $ZSH if you want to install" +  printf "${YELLOW}You already have Oh My Zsh installed.${NORMAL}\n" +  printf "You'll need to remove $ZSH if you want to re-install.\n"    exit  fi -echo "\033[0;34mCloning Oh My Zsh...\033[0m" +# Prevent the cloned repository from having insecure permissions. Failing to do +# so causes compinit() calls to fail with "command not found: compdef" errors +# for users with insecure umasks (e.g., "002", allowing group writability). Note +# that this will be ignored under Cygwin by default, as Windows ACLs take +# precedence over umasks except for filesystems mounted with option "noacl". +umask g-w,o-w + +printf "${BLUE}Cloning Oh My Zsh...${NORMAL}\n"  hash git >/dev/null 2>&1 && env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { -  echo "git not installed" +  printf "git not installed\n"    exit  } -echo "\033[0;34mLooking for an existing zsh config...\033[0m" +printf "${BLUE}Looking for an existing zsh config...${NORMAL}\n"  if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then -  echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m"; +  printf "${YELLOW}Found ~/.zshrc.${NORMAL} ${GREEN}Backing up to ~/.zshrc.pre-oh-my-zsh${NORMAL}\n";    mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh;  fi -echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m" +printf "${BLUE}Using the Oh My Zsh template file and adding it to ~/.zshrc${NORMAL}\n"  cp $ZSH/templates/zshrc.zsh-template ~/.zshrc -sed -i -e "/^export ZSH=/ c\\ +sed "/^export ZSH=/ c\\  export ZSH=$ZSH -" ~/.zshrc +" ~/.zshrc > ~/.zshrc-omztemp +mv -f ~/.zshrc-omztemp ~/.zshrc -echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m" -sed -i -e "/export PATH=/ c\\ +printf "${BLUE}Copying your current PATH and adding it to the end of ~/.zshrc for you.${NORMAL}\n" +sed "/export PATH=/ c\\  export PATH=\"$PATH\" -" ~/.zshrc +" ~/.zshrc > ~/.zshrc-omztemp +mv -f ~/.zshrc-omztemp ~/.zshrc -TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)') -if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then -    echo "\033[0;34mTime to change your default shell to zsh!\033[0m" +# If this user's login shell is not already "zsh", attempt to switch. +if [ "$(expr "$SHELL" : '.*/\(.*\)')" != "zsh" ]; then +  # If this platform provides a "chsh" command (not Cygwin), do it, man! +  if hash chsh >/dev/null 2>&1; then +    printf "${BLUE}Time to change your default shell to zsh!${NORMAL}\n"      chsh -s $(grep /zsh$ /etc/shells | tail -1) +  # Else, suggest the user do so manually. +  else +    printf "${BLUE}Please manually change your default shell to zsh!${NORMAL}\n" +  fi  fi -unset TEST_CURRENT_SHELL - -echo "\033[0;32m"'         __                                     __   '"\033[0m" -echo "\033[0;32m"'  ____  / /_     ____ ___  __  __   ____  _____/ /_  '"\033[0m" -echo "\033[0;32m"' / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ '"\033[0m" -echo "\033[0;32m"'/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / '"\033[0m" -echo "\033[0;32m"'\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  '"\033[0m" -echo "\033[0;32m"'                        /____/                       ....is now installed!'"\033[0m" -echo "\n\n \033[0;32mPlease look over the ~/.zshrc file to select plugins, themes, and options.\033[0m" -echo "\n\n \033[0;32mp.s. Follow us at http://twitter.com/ohmyzsh.\033[0m" -echo "\n\n \033[0;32mp.p.s. Get stickers and t-shirts at http://shop.planetargon.com.\033[0m" + +printf "${GREEN}" +echo '         __                                     __   ' +echo '  ____  / /_     ____ ___  __  __   ____  _____/ /_  ' +echo ' / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ ' +echo '/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / ' +echo '\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  ' +echo '                        /____/                       ....is now installed!' +echo '' +echo '' +echo 'Please look over the ~/.zshrc file to select plugins, themes, and options.' +echo '' +echo 'p.s. Follow us at https://twitter.com/ohmyzsh.' +echo '' +echo 'p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.' +echo '' +printf "${NORMAL}"  env zsh -. ~/.zshrc diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 5f0a81f1d..65af6e368 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,16 +1,37 @@ -printf '\033[0;34m%s\033[0m\n' "Upgrading Oh My Zsh" + +# Use colors, but only if connected to a terminal, and that terminal +# supports them. +ncolors=$(tput colors) +if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then +  RED="$(tput setaf 1)" +  GREEN="$(tput setaf 2)" +  YELLOW="$(tput setaf 3)" +  BLUE="$(tput setaf 4)" +  BOLD="$(tput bold)" +  NORMAL="$(tput sgr0)" +else +  RED="" +  GREEN="" +  YELLOW="" +  BLUE="" +  BOLD="" +  NORMAL="" +fi + +printf "${BLUE}%s${NORMAL}\n" "Upgrading Oh My Zsh"  cd "$ZSH"  if git pull --rebase --stat origin master  then -  printf '\033[0;32m%s\033[0m\n' '         __                                     __   ' -  printf '\033[0;32m%s\033[0m\n' '  ____  / /_     ____ ___  __  __   ____  _____/ /_  ' -  printf '\033[0;32m%s\033[0m\n' ' / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ ' -  printf '\033[0;32m%s\033[0m\n' '/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / ' -  printf '\033[0;32m%s\033[0m\n' '\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  ' -  printf '\033[0;32m%s\033[0m\n' '                        /____/                       ' -  printf '\033[0;34m%s\033[0m\n' 'Hooray! Oh My Zsh has been updated and/or is at the current version.' -  printf '\033[0;34m%s\033[1m%s\033[0m\n' 'To keep up on the latest news and updates, follow us on twitter: ' 'http://twitter.com/ohmyzsh' -  printf '\033[0;34m%s\033[1m%s\033[0m\n' 'Get your Oh My Zsh swag at: ' 'http://shop.planetargon.com/' +  printf '%s' "$GREEN" +  printf '%s\n' '         __                                     __   ' +  printf '%s\n' '  ____  / /_     ____ ___  __  __   ____  _____/ /_  ' +  printf '%s\n' ' / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ ' +  printf '%s\n' '/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / ' +  printf '%s\n' '\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  ' +  printf '%s\n' '                        /____/                       ' +  printf "${BLUE}%s\n" "Hooray! Oh My Zsh has been updated and/or is at the current version." +  printf "${BLUE}${BOLD}%s${NORMAL}\n" "To keep up on the latest news and updates, follow us on twitter: https://twitter.com/ohmyzsh" +  printf "${BLUE}${BOLD}%s${NORMAL}\n" "Get your Oh My Zsh swag at:  http://shop.planetargon.com/"  else -  printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?' +  printf "${RED}%s${NORMAL}\n" 'There was an error updating. Try again later?'  fi  | 
