From 3935ccce647c722bcfdaa771b01613079db20935 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dario=20Vladovi=C4=87?= <d.vladimyr@gmail.com>
Date: Tue, 4 Aug 2020 17:48:29 +0200
Subject: [PATCH] cli: add update command (#9094)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Marc Cornellà <marc.cornella@live.com>
---
 lib/cli.zsh       | 11 +++++++++++
 lib/functions.zsh |  4 ++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/lib/cli.zsh b/lib/cli.zsh
index 73ac5a846..3c09cdab8 100644
--- a/lib/cli.zsh
+++ b/lib/cli.zsh
@@ -23,6 +23,7 @@ function _omz {
     local -a cmds subcmds
     cmds=(
         'help:Usage information'
+        'update:Update Oh My Zsh'
         'pr:Commands for Oh My Zsh Pull Requests'
     )
 
@@ -48,6 +49,7 @@ Usage: omz <command> [options]
 Available commands:
 
     help                Print this help message
+    update              Update Oh My Zsh
     pr <command>        Commands for Oh My Zsh Pull Requests
 
 EOF
@@ -197,3 +199,12 @@ function _omz::pr::test {
         }
     )
 }
+
+function _omz::update {
+    env ZSH="$ZSH" sh "$ZSH/tools/upgrade.sh"
+    # Update last updated file
+    zmodload zsh/datetime
+    echo "LAST_EPOCH=$(( EPOCHSECONDS / 60 / 60 / 24 ))" >! "${ZSH_CACHE_DIR}/.zsh-update"
+    # Remove update lock if it exists
+    command rm -rf "$ZSH/log/update.lock"
+}
diff --git a/lib/functions.zsh b/lib/functions.zsh
index 678e29ce7..e85b867a5 100644
--- a/lib/functions.zsh
+++ b/lib/functions.zsh
@@ -7,8 +7,8 @@ function uninstall_oh_my_zsh() {
 }
 
 function upgrade_oh_my_zsh() {
-  env ZSH="$ZSH" sh "$ZSH/tools/upgrade.sh"
-  command rm -rf "$ZSH/log/update.lock"
+  echo >&2 "${fg[yellow]}Note: \`$0\` is deprecated. Use \`omz update\` instead.$reset_color"
+  omz update
 }
 
 function take() {