]> git.rmz.io Git - dotfiles.git/blobdiff - zsh/tools/check_for_upgrade.sh
merge oh-my-zsh into subdir
[dotfiles.git] / zsh / tools / check_for_upgrade.sh
diff --git a/zsh/tools/check_for_upgrade.sh b/zsh/tools/check_for_upgrade.sh
new file mode 100644 (file)
index 0000000..581f03a
--- /dev/null
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+function _current_epoch() {
+  echo $(($(date +%s) / 60 / 60 / 24))
+}
+
+function _update_zsh_update() {
+  echo "LAST_EPOCH=$(_current_epoch)" > ~/.zsh-update
+}
+
+function _upgrade_zsh() {
+  /usr/bin/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
+
+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
+      echo "[Oh My Zsh] Would you like to check for updates?"
+      echo "Type Y to update oh-my-zsh: \c"
+      read line
+      if [ "$line" = Y ] || [ "$line" = y ]; then
+        _upgrade_zsh
+      else
+        _update_zsh_update
+      fi
+    fi
+  fi
+else
+  # create the zsh file
+  _update_zsh_update
+fi
+