check_for_upgrade.sh 1.28 KB
Newer Older
1
2
#!/bin/sh

Moinak Ghosh's avatar
Moinak Ghosh committed
3
PLAT=`uname -s`
4
function _current_epoch() {
Moinak Ghosh's avatar
Moinak Ghosh committed
5
6
7
8
9
10
  if [ "$PLAT" = "SunOS" ]
  then
    echo $(($(perl -e 'print time') / 60 / 60 / 24))
  else
    echo $(($(date +%s) / 60 / 60 / 24))
  fi
11
12
13
}

function _update_zsh_update() {
14
  echo "LAST_EPOCH=$(_current_epoch)" >! ~/.zsh-update
15
}
16

17
18
19
20
21
22
function _upgrade_zsh() {
  /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
  # update the zsh file
  _update_zsh_update
}

Eric Danielson's avatar
Eric Danielson committed
23
24
25
26
27
28
epoch_target=$UPDATE_ZSH_DAYS
if [[ -z "$epoch_target" ]]; then
  # Default to old behavior
  epoch_target=13
fi

n.st's avatar
n.st committed
29
30
31
32
33
34
[ -f ~/.profile ] && source ~/.profile

# Cancel upgrade if the current user doesn't have write permissions for the
# oh-my-zsh directory.
[[ -w "$ZSH" ]] || return 0

35
36
if [ -f ~/.zsh-update ]
then
Gerhard Lazu's avatar
Gerhard Lazu committed
37
  . ~/.zsh-update
38
39
40
41
42

  if [[ -z "$LAST_EPOCH" ]]; then
    _update_zsh_update && return 0;
  fi

Christopher Chow's avatar
Christopher Chow committed
43
  epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
Eric Danielson's avatar
Eric Danielson committed
44
  if [ $epoch_diff -gt $epoch_target ]
45
  then
46
    if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
47
    then
48
49
50
51
52
      _upgrade_zsh
    else
      echo "[Oh My Zsh] Would you like to check for updates?"
      echo "Type Y to update oh-my-zsh: \c"
      read line
53
      if [ "$line" = Y ] || [ "$line" = y ]; then
54
        _upgrade_zsh
55
56
      else
        _update_zsh_update
57
      fi
58
59
    fi
  fi
nebirhos's avatar
nebirhos committed
60
61
62
else
  # create the zsh file
  _update_zsh_update
63
fi
64