summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Cornellà <marc.cornella@live.com>2020-12-12 13:41:29 +0100
committerMarc Cornellà <marc.cornella@live.com>2020-12-12 13:50:53 +0100
commite8e37eedbc8cf5e446be11971769df7cc10faeb0 (patch)
treef961d11d02a207253c55f304fb724d472cda9baa
parent9d6b3984f92cf7f4411b40dfb5a0897b260ae368 (diff)
downloadzsh-e8e37eedbc8cf5e446be11971769df7cc10faeb0.tar.gz
zsh-e8e37eedbc8cf5e446be11971769df7cc10faeb0.tar.bz2
zsh-e8e37eedbc8cf5e446be11971769df7cc10faeb0.zip
feat(updater): save version prior to updating so `omz changelog` just works™
Fixes #9505
-rwxr-xr-xtools/changelog.sh11
-rwxr-xr-xtools/upgrade.sh8
2 files changed, 16 insertions, 3 deletions
diff --git a/tools/changelog.sh b/tools/changelog.sh
index 4ce42e5a3..845b1d4b4 100755
--- a/tools/changelog.sh
+++ b/tools/changelog.sh
@@ -340,16 +340,23 @@ function display-release {
function main {
# $1 = until commit, $2 = since commit
- # $3 = output format (--raw|--text|--md)
local until="$1" since="$2"
+
+ # $3 = output format (--text|--raw|--md)
+ # --md: uses markdown formatting
+ # --raw: outputs without style
+ # --text: uses ANSI escape codes to style the output
local output=${${3:-"--text"}#--*}
if [[ -z "$until" ]]; then
until=HEAD
fi
- # If $since is not specified, look up first version tag before $until
if [[ -z "$since" ]]; then
+ # If $since is not specified:
+ # 1) try to find the version used before updating
+ # 2) try to find the first version tag before $until
+ since=$(command git config --get oh-my-zsh.lastVersion 2>/dev/null) || \
since=$(command git describe --abbrev=0 --tags "$until^" 2>/dev/null) || \
unset since
elif [[ "$since" = --all ]]; then
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index cfd424527..4df7eb184 100755
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -10,7 +10,7 @@ cd "$ZSH"
# and that terminal supports them.
local -a RAINBOW
-local RED GREEN YELLOW BLUE UNDER BOLD RESET
+local RED GREEN YELLOW BLUE BOLD DIM UNDER RESET
if [ -t 1 ]; then
RAINBOW=(
@@ -28,6 +28,7 @@ if [ -t 1 ]; then
YELLOW=$(printf '\033[33m')
BLUE=$(printf '\033[34m')
BOLD=$(printf '\033[1m')
+ DIM=$(printf '\033[2m')
UNDER=$(printf '\033[4m')
RESET=$(printf '\033[m')
fi
@@ -69,6 +70,9 @@ if git pull --rebase --stat origin master; then
else
message="Hooray! Oh My Zsh has been updated!"
+ # Save the commit prior to updating
+ git config oh-my-zsh.lastVersion "$last_commit"
+
# Display changelog with less if available, otherwise just print it to the terminal
if [[ "$1" = --interactive ]]; then
if (( $+commands[less] )); then
@@ -77,6 +81,8 @@ if git pull --rebase --stat origin master; then
"$ZSH/tools/changelog.sh" HEAD "$last_commit"
fi
fi
+
+ printf "${BLUE}%s \`${BOLD}%s${RESET}${BLUE}\`${RESET}\n" "You can see the changelog again with" "omz changelog"
fi
printf '%s %s__ %s %s %s %s %s__ %s\n' $RAINBOW $RESET