Blame view

tools/check_for_upgrade.sh 1.13 KB
093a6c34b   mj   Squashed 'repos/r...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
  #!/usr/bin/env zsh
  
  zmodload zsh/datetime
  
  function _current_epoch() {
    echo $(( $EPOCHSECONDS / 60 / 60 / 24 ))
  }
  
  function _update_zsh_update() {
    echo "LAST_EPOCH=$(_current_epoch)" >! ~/.zsh-update
  }
  
  function _upgrade_zsh() {
    env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
    # update the zsh file
    _update_zsh_update
  }
  
  epoch_target=$UPDATE_ZSH_DAYS
  if [[ -z "$epoch_target" ]]; then
    # Default to old behavior
    epoch_target=13
  fi
  
  # Cancel upgrade if the current user doesn't have write permissions for the
  # oh-my-zsh directory.
  [[ -w "$ZSH" ]] || return 0
  
  if [ -f ~/.zsh-update ]
  then
    . ~/.zsh-update
  
    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
238d8e65a   mj   Squashed 'repos/r...
44
        echo "[Oh My Zsh] Would you like to check for updates? [Y/n]: \c"
093a6c34b   mj   Squashed 'repos/r...
45
        read line
238d8e65a   mj   Squashed 'repos/r...
46
        if [ "$line" = Y ] || [ "$line" = y ] || [ -z "$line" ]; then
093a6c34b   mj   Squashed 'repos/r...
47
48
49
50
51
52
53
54
55
56
          _upgrade_zsh
        else
          _update_zsh_update
        fi
      fi
    fi
  else
    # create the zsh file
    _update_zsh_update
  fi