diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/check_for_upgrade.sh | 45 | ||||
-rwxr-xr-x | tools/install.sh | 32 | ||||
-rwxr-xr-x | tools/theme_chooser.sh | 2 | ||||
-rw-r--r-- | tools/uninstall.sh | 21 | ||||
-rw-r--r-- | tools/upgrade.sh | 4 |
5 files changed, 46 insertions, 58 deletions
diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 1c897cb36..05b31e8d4 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -7,11 +7,11 @@ function _current_epoch() { } function _update_zsh_update() { - echo "LAST_EPOCH=$(_current_epoch)" >! ~/.zsh-update + echo "LAST_EPOCH=$(_current_epoch)" >! ${ZSH_CACHE_DIR}/.zsh-update } function _upgrade_zsh() { - env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh + env ZSH=$ZSH sh $ZSH/tools/upgrade.sh # update the zsh file _update_zsh_update } @@ -29,31 +29,32 @@ fi # Cancel upgrade if git is unavailable on the system whence git >/dev/null || return 0 -if [ -f ~/.zsh-update ] -then - . ~/.zsh-update +if mkdir "$ZSH/log/update.lock" 2>/dev/null; then + if [ -f ${ZSH_CACHE_DIR}/.zsh-update ]; then + . ${ZSH_CACHE_DIR}/.zsh-update - if [[ -z "$LAST_EPOCH" ]]; then - _update_zsh_update && return 0; - fi + if [[ -z "$LAST_EPOCH" ]]; then + _update_zsh_update && return 0 + fi - epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) - if [ $epoch_diff -gt $epoch_target ] - then - if [ "$DISABLE_UPDATE_PROMPT" = "true" ] - then - _upgrade_zsh - else - echo "[Oh My Zsh] Would you like to check for updates? [Y/n]: \c" - read line - if [ "$line" = Y ] || [ "$line" = y ] || [ -z "$line" ]; then + epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) + if [ $epoch_diff -gt $epoch_target ]; then + if [ "$DISABLE_UPDATE_PROMPT" = "true" ]; then _upgrade_zsh else - _update_zsh_update + echo "[Oh My Zsh] Would you like to update? [Y/n]: \c" + read line + if [[ "$line" == Y* ]] || [[ "$line" == y* ]] || [ -z "$line" ]; then + _upgrade_zsh + else + _update_zsh_update + fi fi fi + else + # create the zsh file + _update_zsh_update fi -else - # create the zsh file - _update_zsh_update + + rmdir $ZSH/log/update.lock fi diff --git a/tools/install.sh b/tools/install.sh index 8cba52085..2fb87cdaf 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -24,12 +24,10 @@ main() { # which may fail on systems lacking tput or terminfo set -e - CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l) - if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then + if ! command -v zsh >/dev/null 2>&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 @@ -49,15 +47,10 @@ main() { umask g-w,o-w printf "${BLUE}Cloning Oh My Zsh...${NORMAL}\n" - hash git >/dev/null 2>&1 || { + command -v git >/dev/null 2>&1 || { echo "Error: git is not installed" exit 1 } - env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { - printf "Error: git clone of oh-my-zsh repo failed\n" - 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 @@ -66,6 +59,11 @@ main() { exit 1 fi fi + env git clone --depth=1 https://github.com/robbyrussell/oh-my-zsh.git "$ZSH" || { + printf "Error: git clone of oh-my-zsh repo failed\n" + exit 1 + } + printf "${BLUE}Looking for an existing zsh config...${NORMAL}\n" if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then @@ -74,20 +72,14 @@ main() { fi printf "${BLUE}Using the Oh My Zsh template file and adding it to ~/.zshrc${NORMAL}\n" - cp $ZSH/templates/zshrc.zsh-template ~/.zshrc + cp "$ZSH"/templates/zshrc.zsh-template ~/.zshrc sed "/^export ZSH=/ c\\ - export ZSH=$ZSH - " ~/.zshrc > ~/.zshrc-omztemp - mv -f ~/.zshrc-omztemp ~/.zshrc - - 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\" + export ZSH=\"$ZSH\" " ~/.zshrc > ~/.zshrc-omztemp mv -f ~/.zshrc-omztemp ~/.zshrc # If this user's login shell is not already "zsh", attempt to switch. - TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)') + 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 @@ -113,10 +105,10 @@ main() { 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 'p.p.s. Get stickers and t-shirts at https://shop.planetargon.com.' echo '' printf "${NORMAL}" - env zsh + env zsh -l } main diff --git a/tools/theme_chooser.sh b/tools/theme_chooser.sh index 2c2a379ba..82ae5857c 100755 --- a/tools/theme_chooser.sh +++ b/tools/theme_chooser.sh @@ -5,7 +5,7 @@ # the extent permitted by applicable law. You can redistribute it # and/or modify it under the terms of the Do What The Fuck You Want # To Public License, Version 2, as published by Sam Hocevar. See -# http://sam.zoy.org/wtfpl/COPYING for more details. +# http://www.wtfpl.net/txt/copying/ for more details. THEMES_DIR="$ZSH/themes" FAVLIST="${HOME}/.zsh_favlist" diff --git a/tools/uninstall.sh b/tools/uninstall.sh index 9ad1b64a6..bf2244be8 100644 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -1,34 +1,29 @@ read -r -p "Are you sure you want to remove Oh My Zsh? [y/N] " confirmation -if [ "$confirmation" != y ] && [ "$confirmation" != Y ] -then +if [ "$confirmation" != y ] && [ "$confirmation" != Y ]; then echo "Uninstall cancelled" exit fi echo "Removing ~/.oh-my-zsh" -if [ -d ~/.oh-my-zsh ] -then +if [ -d ~/.oh-my-zsh ]; then rm -rf ~/.oh-my-zsh fi echo "Looking for original zsh config..." -if [ -f ~/.zshrc.pre-oh-my-zsh ] || [ -h ~/.zshrc.pre-oh-my-zsh ] -then +if [ -f ~/.zshrc.pre-oh-my-zsh ] || [ -h ~/.zshrc.pre-oh-my-zsh ]; then echo "Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc"; - if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] - then - ZSHRC_SAVE=".zshrc.omz-uninstalled-`date +%Y%m%d%H%M%S`"; + if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]; then + ZSHRC_SAVE=".zshrc.omz-uninstalled-$(date +%Y%m%d%H%M%S)"; echo "Found ~/.zshrc -- Renaming to ~/${ZSHRC_SAVE}"; - mv ~/.zshrc ~/${ZSHRC_SAVE}; + mv ~/.zshrc ~/"${ZSHRC_SAVE}"; fi mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc; - source ~/.zshrc; + echo "Your original zsh config was restored. Please restart your session." else - if hash chsh >/dev/null 2>&1 - then + if hash chsh >/dev/null 2>&1; then echo "Switching back to bash" chsh -s /bin/bash else diff --git a/tools/upgrade.sh b/tools/upgrade.sh index fe8fbadca..25b2de27a 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -20,7 +20,7 @@ else NORMAL="" fi -printf "${BLUE}%s${NORMAL}\n" "Upgrading Oh My Zsh" +printf "${BLUE}%s${NORMAL}\n" "Updating Oh My Zsh" cd "$ZSH" if git pull --rebase --stat origin master then @@ -33,7 +33,7 @@ then 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/" + printf "${BLUE}${BOLD}%s${NORMAL}\n" "Get your Oh My Zsh swag at: https://shop.planetargon.com/" else printf "${RED}%s${NORMAL}\n" 'There was an error updating. Try again later?' fi |