diff options
| author | Marc Cornellà <marc.cornella@live.com> | 2016-05-29 10:35:55 +0200 | 
|---|---|---|
| committer | Marc Cornellà <marc.cornella@live.com> | 2019-06-03 17:18:22 +0200 | 
| commit | 9a832cccef79084e02028ca2fa8b021817256ad4 (patch) | |
| tree | 80436209766266aa5ddcd9d92948f39bcd6c3216 /tools | |
| parent | 27228d83fe403cf664c0c8626a3874ed3989d084 (diff) | |
| download | zsh-9a832cccef79084e02028ca2fa8b021817256ad4.tar.gz zsh-9a832cccef79084e02028ca2fa8b021817256ad4.tar.bz2 zsh-9a832cccef79084e02028ca2fa8b021817256ad4.zip | |
installer: use exit-on-error from the beginning
Diffstat (limited to 'tools')
| -rwxr-xr-x | tools/install.sh | 26 | 
1 files changed, 15 insertions, 11 deletions
| diff --git a/tools/install.sh b/tools/install.sh index 2e5e8fd43..5c5419b17 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,8 +1,16 @@ +#!/bin/sh +set -e + +# Test command existence (POSIX compatible) +command_exists() { +  command -v "$@" >/dev/null 2>&1 +} +  main() {    # Use colors, but only if connected to a terminal, and that terminal    # supports them. -  if which tput >/dev/null 2>&1; then -      ncolors=$(tput colors) +  if command_exists tput; then +    ncolors=$(tput colors)    fi    if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then      RED="$(tput setaf 1)" @@ -20,13 +28,9 @@ main() {      NORMAL=""    fi -  # Only enable exit-on-error after the non-critical colorization stuff, -  # which may fail on systems lacking tput or terminfo -  set -e - -  if ! command -v zsh >/dev/null 2>&1; then +  if ! command_exists zsh; then      printf "${YELLOW}Zsh is not installed!${NORMAL} Please install zsh first!\n" -    exit +    exit 1    fi    if [ ! -n "$ZSH" ]; then @@ -36,7 +40,7 @@ main() {    if [ -d "$ZSH" ]; then      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 +    exit 1    fi    # Prevent the cloned repository from having insecure permissions. Failing to do @@ -47,7 +51,7 @@ main() {    umask g-w,o-w    printf "${BLUE}Cloning Oh My Zsh...${NORMAL}\n" -  command -v git >/dev/null 2>&1 || { +  command_exists git || {      echo "Error: git is not installed"      exit 1    } @@ -82,7 +86,7 @@ main() {    TEST_CURRENT_SHELL=$(basename "$SHELL")    if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then      # If this platform provides a "chsh" command (not Cygwin), do it, man! -    if hash chsh >/dev/null 2>&1; then +    if command_exists chsh; 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. | 
