From 1246c3e08bfb7d999bac2ae3e9933084cffbc4eb Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Fri, 20 Feb 2015 02:34:54 -0500 Subject: install.sh: Replace nonstandard "sed -i" with sed + mv commands. Makes portable to systems whose sed lacks "-i", like OpenBSD. --- tools/install.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index bd4c55749..496199363 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -23,14 +23,16 @@ fi echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m" 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\\ +sed "/export PATH=/ c\\ export PATH=\"$PATH\" -" ~/.zshrc +" ~/.zshrc > ~/.zshrc-omztemp +mv -f ~/.zshrc-omztemp ~/.zshrc if [ "$SHELL" != "$(which zsh)" ]; then echo "\033[0;34mTime to change your default shell to zsh!\033[0m" -- cgit v1.2.3-70-g09d2 From 19ea867a3a5cc118fd84560275db05354a4aed0b Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Tue, 3 Mar 2015 21:13:46 -0500 Subject: install.sh: use portable printf instead of echo --- tools/install.sh | 47 +++++++++++++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 18 deletions(-) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index c83a6f23d..ff2e3e917 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,52 +1,63 @@ set -e +BLUE="\033[0;34m" +GREEN="\033[0;32m" +YELLOW="\033[0;33m" +NOCOLOR="\033[0m" + 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.${NOCOLOR} You'll need to remove $ZSH if you want to install\n" exit fi -echo "\033[0;34mCloning Oh My Zsh...\033[0m" +printf "${BLUE}Cloning Oh My Zsh...${NOCOLOR}\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...${NOCOLOR}\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.${NOCOLOR} ${GREEN}Backing up to ~/.zshrc.pre-oh-my-zsh${NOCOLOR}\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${NOCOLOR}\n" cp $ZSH/templates/zshrc.zsh-template ~/.zshrc sed -i -e "/^export ZSH=/ c\\ export ZSH=$ZSH " ~/.zshrc -echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m" +printf "${BLUE}Copying your current PATH and adding it to the end of ~/.zshrc for you.${NOCOLOR}\n" sed -i -e "/export PATH=/ c\\ export PATH=\"$PATH\" " ~/.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" + printf "${BLUE}Time to change your default shell to zsh!${NOCOLOR}\n" chsh -s $(grep /zsh$ /etc/shells | tail -1) 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 http://twitter.com/ohmyzsh.' +echo '' +echo 'p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.' +echo '' +printf "${NOCOLOR}" env zsh -. ~/.zshrc -- cgit v1.2.3-70-g09d2 From 8cf610089d97cf1abbd5cf3e0fb28d63b4c25f51 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Mon, 6 Jul 2015 20:18:32 -0400 Subject: installer: use terminfo for portable escape sequences Do not use terminal visual effects if not connected to a terminal. --- tools/install.sh | 39 +++++++++++++++++++++++++++------------ tools/upgrade.sh | 43 ++++++++++++++++++++++++++++++++----------- 2 files changed, 59 insertions(+), 23 deletions(-) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index ff2e3e917..8ff1219b0 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,45 +1,60 @@ set -e -BLUE="\033[0;34m" -GREEN="\033[0;32m" -YELLOW="\033[0;33m" -NOCOLOR="\033[0m" +# 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 if [ ! -n "$ZSH" ]; then ZSH=~/.oh-my-zsh fi if [ -d "$ZSH" ]; then - printf "${YELLOW}You already have Oh My Zsh installed.${NOCOLOR} You'll need to remove $ZSH if you want to install\n" + 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 -printf "${BLUE}Cloning Oh My Zsh...${NOCOLOR}\n" +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 || { printf "git not installed\n" exit } -printf "${BLUE}Looking for an existing zsh config...${NOCOLOR}\n" +printf "${BLUE}Looking for an existing zsh config...${NORMAL}\n" if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then - printf "${YELLOW}Found ~/.zshrc.${NOCOLOR} ${GREEN}Backing up to ~/.zshrc.pre-oh-my-zsh${NOCOLOR}\n"; + printf "${YELLOW}Found ~/.zshrc.${NORMAL} ${GREEN}Backing up to ~/.zshrc.pre-oh-my-zsh${NORMAL}\n"; mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh; fi -printf "${BLUE}Using the Oh My Zsh template file and adding it to ~/.zshrc${NOCOLOR}\n" +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\\ export ZSH=$ZSH " ~/.zshrc -printf "${BLUE}Copying your current PATH and adding it to the end of ~/.zshrc for you.${NOCOLOR}\n" +printf "${BLUE}Copying your current PATH and adding it to the end of ~/.zshrc for you.${NORMAL}\n" sed -i -e "/export PATH=/ c\\ export PATH=\"$PATH\" " ~/.zshrc TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)') if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then - printf "${BLUE}Time to change your default shell to zsh!${NOCOLOR}\n" + printf "${BLUE}Time to change your default shell to zsh!${NORMAL}\n" chsh -s $(grep /zsh$ /etc/shells | tail -1) fi unset TEST_CURRENT_SHELL @@ -59,5 +74,5 @@ echo 'p.s. Follow us at http://twitter.com/ohmyzsh.' echo '' echo 'p.p.s. Get stickers and t-shirts at http://shop.planetargon.com.' echo '' -printf "${NOCOLOR}" +printf "${NORMAL}" env zsh diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 5f0a81f1d..4929054c9 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: http://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 -- cgit v1.2.3-70-g09d2 From da395c583770b466b5ba83c37d313a7b1c0024c9 Mon Sep 17 00:00:00 2001 From: leycec Date: Sat, 11 Jul 2015 00:52:54 -0400 Subject: Secure umask enforced during installation. For safety, a umask of 022 prohibiting both group and other writability is now enforced during OMZ installation. In theory, this should reduce the likelihood of subsequent compinit() failures due to insecure directory permissions under all platforms except for default Cygwin installations (in which Windows ACLs override POSIX umasks). --- tools/install.sh | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index c83a6f23d..405f461e9 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -9,6 +9,13 @@ if [ -d "$ZSH" ]; then exit fi +# 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 + echo "\033[0;34mCloning Oh My Zsh...\033[0m" hash git >/dev/null 2>&1 && env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { echo "git not installed" -- cgit v1.2.3-70-g09d2 From e8caf22beb8cde69f097382a75f6d1a247625030 Mon Sep 17 00:00:00 2001 From: leycec Date: Sat, 11 Jul 2015 00:54:36 -0400 Subject: Cygwin-specific "chsh" installation issue fixed. Installation previously assumed the existence of a "chsh" command in the current ${PATH}. Since Cygwin does *NOT* provide this command, installation now tests for the existence of this command before attempting to run it. --- tools/install.sh | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index 405f461e9..f5836fdf6 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -39,12 +39,17 @@ sed -i -e "/export PATH=/ c\\ export PATH=\"$PATH\" " ~/.zshrc -TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)') -if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then +# 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 echo "\033[0;34mTime to change your default shell to zsh!\033[0m" chsh -s $(grep /zsh$ /etc/shells | tail -1) + # Else, suggest the user do so manually. + else + echo "\033[0;34mPlease manually change your default shell to zsh!\033[0m" + fi fi -unset TEST_CURRENT_SHELL echo "\033[0;32m"' __ __ '"\033[0m" echo "\033[0;32m"' ____ / /_ ____ ___ __ __ ____ _____/ /_ '"\033[0m" -- cgit v1.2.3-70-g09d2 From 58d2f9335d21a30a85d47c820203e00c1f3d5be7 Mon Sep 17 00:00:00 2001 From: Chang Hyun Park Date: Wed, 12 Aug 2015 16:47:37 +0900 Subject: Check if Zsh is installed prior to installing Oh My Zsh Check if Zsh is installed before installing anything else. New-commers, or people who don't read the disclaimers(ex. me) will go straight to stack overflow if chsh -s returns an error. --- tools/install.sh | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index c83a6f23d..951737754 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -1,5 +1,12 @@ set -e +CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l) +if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then + echo "\033[0;33m Zsh is not installed!\033[0m Please install zsh first!" + exit +fi +unset CHECK_ZSH_INSTALLED + if [ ! -n "$ZSH" ]; then ZSH=~/.oh-my-zsh fi -- cgit v1.2.3-70-g09d2 From de47e2df69fd4ac29fd887f5ab593f2f738f982a Mon Sep 17 00:00:00 2001 From: Felix Krause Date: Sun, 16 Aug 2015 19:29:58 +0200 Subject: Use https instead of http --- tools/upgrade.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 5f0a81f1d..e06e4f331 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -9,7 +9,7 @@ then 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' 'To keep up on the latest news and updates, follow us on twitter: ' 'https://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/' else printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?' -- cgit v1.2.3-70-g09d2 From fe92ea98e0633784508e85d6b756b1c3f667b2a4 Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Tue, 18 Aug 2015 03:01:21 -0400 Subject: installer: switch twitter link to https --- tools/install.sh | 4 ++-- tools/upgrade.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index 8ff1219b0..beec750c3 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -4,7 +4,7 @@ set -e # supports them. ncolors=$(tput colors) if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then - RED=="$(tput setaf 1)" + RED="$(tput setaf 1)" GREEN="$(tput setaf 2)" YELLOW="$(tput setaf 3)" BLUE="$(tput setaf 4)" @@ -70,7 +70,7 @@ echo '' echo '' echo 'Please look over the ~/.zshrc file to select plugins, themes, and options.' echo '' -echo 'p.s. Follow us at http://twitter.com/ohmyzsh.' +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 '' diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 4929054c9..59b380116 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -30,7 +30,7 @@ then 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: http://twitter.com/ohmyzsh" + 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 "${RED}%s${NORMAL}\n" 'There was an error updating. Try again later?' -- cgit v1.2.3-70-g09d2 From 502f08b5e19716d43a7ec8b006178a7b017f68cd Mon Sep 17 00:00:00 2001 From: Andrew Janke Date: Fri, 27 Feb 2015 23:11:00 -0500 Subject: Add Cygwin support to installer. * Balk at incompatible Windows/MSYS git * Test for chsh presence before trying to use it * Replace non-portable `[[ ... ]]` and `[ x = *pattern* ]` constructs --- tools/install.sh | 23 ++++++++++++++++++++--- tools/uninstall.sh | 12 ++++++++---- 2 files changed, 28 insertions(+), 7 deletions(-) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index c83a6f23d..1da261cf9 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -10,9 +10,21 @@ if [ -d "$ZSH" ]; then fi echo "\033[0;34mCloning Oh My Zsh...\033[0m" -hash git >/dev/null 2>&1 && env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { - echo "git not installed" - exit +hash git >/dev/null 2>&1 || { + echo "Error: git is not installed" + exit 1 +} +# The Windows (MSYS) Git is not compatible with normal use on cygwin +if [ "$OSTYPE" = cygwin ]; then + if git --version | grep msysgit > /dev/null; then + echo "Error: Windows/MSYS Git is not supported on Cygwin" + echo "Error: Make sure the Cygwin git package is installed and is first on the path" + exit 1 + fi +fi +env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { + echo "Error: git clone of oh-my-zsh repo failed" + exit 1 } echo "\033[0;34mLooking for an existing zsh config...\033[0m" @@ -34,8 +46,13 @@ export PATH=\"$PATH\" TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)') if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then + if hash chsh >/dev/null 2>&1; then echo "\033[0;34mTime to change your default shell to zsh!\033[0m" chsh -s $(grep /zsh$ /etc/shells | tail -1) + else + echo "I can't change your shell automatically because this system does not have chsh." + echo "Please edit /etc/passwd to set your default shell to zsh." + fi fi unset TEST_CURRENT_SHELL diff --git a/tools/uninstall.sh b/tools/uninstall.sh index 41d601576..23bfac0eb 100644 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -1,5 +1,5 @@ echo "Removing ~/.oh-my-zsh" -if [[ -d ~/.oh-my-zsh ]] +if [ -d ~/.oh-my-zsh ] then rm -rf ~/.oh-my-zsh fi @@ -20,9 +20,13 @@ then source ~/.zshrc; else - echo "Switching back to bash" - chsh -s /bin/bash - source /etc/profile + if hash chsh >/dev/null 2>&1 + then + echo "Switching back to bash" + chsh -s /bin/bash + else + echo "You can edit /etc/passwd to switch your default shell back to bash" + fi fi echo "Thanks for trying out Oh My Zsh. It's been uninstalled." -- cgit v1.2.3-70-g09d2 From 884a8795623087d4812511de21dfb9329fa29e56 Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Mon, 21 Sep 2015 19:55:28 +0200 Subject: Do not fail if tput is not available Fixes issue #4376 --- tools/install.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/install.sh b/tools/install.sh index 4b1a6ba7e..30d66d4b5 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -2,7 +2,10 @@ set -e # Use colors, but only if connected to a terminal, and that terminal # supports them. -ncolors=$(tput colors) +tput=$(which tput) +if [ -n "$tput" ]; then + ncolors=$($tput colors) +fi if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then RED="$(tput setaf 1)" GREEN="$(tput setaf 2)" -- cgit v1.2.3-70-g09d2 From 95296bb0c5fade33c6cda7ccc7139a35c2641b3a Mon Sep 17 00:00:00 2001 From: Frederic Crozat Date: Tue, 22 Sep 2015 16:46:22 +0200 Subject: also handle missing tput in upgrade script. --- tools/upgrade.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tools') diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 65af6e368..6e9696202 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,7 +1,10 @@ # Use colors, but only if connected to a terminal, and that terminal # supports them. -ncolors=$(tput colors) +tput=$(which tput) +if [ -n "$tput" ]; then + ncolors=$(tput colors) +fi if [ -t 1 ] && [ -n "$ncolors" ] && [ "$ncolors" -ge 8 ]; then RED="$(tput setaf 1)" GREEN="$(tput setaf 2)" -- cgit v1.2.3-70-g09d2