40bfe5a4124be7b5983756cc81b54a4a4d5846e6
- Author
- Fabian Wolff <fabi.wolff@arcor.de>
- Committer
- Marc Cornellà <marc.cornella@live.com>
- Date
Message
Implement a locking mechanism to avoid multiple update prompts (fixes #3766)
Diff
1diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh
2index bd9aba8be1d90aa8021f3eb3de951d10d2b9d967..d1b174c6deb01eac89920f0ad6ce801b94c2fc4d 100644
3--- a/tools/check_for_upgrade.sh
4+++ b/tools/check_for_upgrade.sh
5@@ -29,31 +29,36 @@ fi
6 # Cancel upgrade if git is unavailable on the system
7 whence git >/dev/null || return 0
8
9-if [ -f ~/.zsh-update ]
10+if mkdir "$ZSH/log/update.lock" 2>/dev/null
11 then
12- . ~/.zsh-update
13+ if [ -f ~/.zsh-update ]
14+ then
15+ . ~/.zsh-update
16
17- if [[ -z "$LAST_EPOCH" ]]; then
18- _update_zsh_update && return 0;
19- fi
20+ if [[ -z "$LAST_EPOCH" ]]; then
21+ _update_zsh_update && return 0;
22+ fi
23
24- epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
25- if [ $epoch_diff -gt $epoch_target ]
26- then
27- if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
28+ epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
29+ if [ $epoch_diff -gt $epoch_target ]
30 then
31- _upgrade_zsh
32- else
33- echo "[Oh My Zsh] Would you like to check for updates? [Y/n]: \c"
34- read line
35- if [[ "$line" == Y* ]] || [[ "$line" == y* ]] || [ -z "$line" ]; then
36+ if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
37+ then
38 _upgrade_zsh
39 else
40- _update_zsh_update
41+ echo "[Oh My Zsh] Would you like to check for updates? [Y/n]: \c"
42+ read line
43+ if [[ "$line" == Y* ]] || [[ "$line" == y* ]] || [ -z "$line" ]; then
44+ _upgrade_zsh
45+ else
46+ _update_zsh_update
47+ fi
48 fi
49 fi
50+ else
51+ # create the zsh file
52+ _update_zsh_update
53 fi
54-else
55- # create the zsh file
56- _update_zsh_update
57+
58+ rm -r $ZSH/log/update.lock
59 fi