Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
889cd7ac
Commit
889cd7ac
authored
Oct 31, 2020
by
Marc Cornellà
Browse files
refactor(updater): switch to Zsh execution and fix git remote detection logic
parent
05e2956d
Changes
4
Show whitespace changes
Inline
Side-by-side
lib/cli.zsh
View file @
889cd7ac
...
@@ -351,7 +351,7 @@ function _omz::theme::use {
...
@@ -351,7 +351,7 @@ function _omz::theme::use {
function
_omz::update
{
function
_omz::update
{
# Run update script
# Run update script
env
ZSH
=
"
$ZSH
"
sh
"
$ZSH
/tools/upgrade.sh"
env
ZSH
=
"
$ZSH
"
z
sh
-f
"
$ZSH
/tools/upgrade.sh"
# Update last updated file
# Update last updated file
zmodload zsh/datetime
zmodload zsh/datetime
echo
"LAST_EPOCH=
$((
EPOCHSECONDS
/
60
/
60
/
24
))
"
>!
"
${
ZSH_CACHE_DIR
}
/.zsh-update"
echo
"LAST_EPOCH=
$((
EPOCHSECONDS
/
60
/
60
/
24
))
"
>!
"
${
ZSH_CACHE_DIR
}
/.zsh-update"
...
...
lib/functions.zsh
View file @
889cd7ac
...
@@ -14,7 +14,7 @@ function upgrade_oh_my_zsh() {
...
@@ -14,7 +14,7 @@ function upgrade_oh_my_zsh() {
fi
fi
# Run update script
# Run update script
env
ZSH
=
"
$ZSH
"
sh
"
$ZSH
/tools/upgrade.sh"
env
ZSH
=
"
$ZSH
"
z
sh
-f
"
$ZSH
/tools/upgrade.sh"
# Update last updated file
# Update last updated file
zmodload zsh/datetime
zmodload zsh/datetime
echo
"LAST_EPOCH=
$((
EPOCHSECONDS
/
60
/
60
/
24
))
"
>!
"
${
ZSH_CACHE_DIR
}
/.zsh-update"
echo
"LAST_EPOCH=
$((
EPOCHSECONDS
/
60
/
60
/
24
))
"
>!
"
${
ZSH_CACHE_DIR
}
/.zsh-update"
...
...
tools/check_for_upgrade.sh
View file @
889cd7ac
...
@@ -24,7 +24,7 @@ function update_last_updated_file() {
...
@@ -24,7 +24,7 @@ function update_last_updated_file() {
}
}
function
update_ohmyzsh
()
{
function
update_ohmyzsh
()
{
ZSH
=
"
$ZSH
"
sh
"
$ZSH
/tools/upgrade.sh"
ZSH
=
"
$ZSH
"
z
sh
-f
"
$ZSH
/tools/upgrade.sh"
update_last_updated_file
update_last_updated_file
}
}
...
@@ -51,7 +51,11 @@ function update_ohmyzsh() {
...
@@ -51,7 +51,11 @@ function update_ohmyzsh() {
# The return status from the function is handled specially. If it is zero, the signal is
# The return status from the function is handled specially. If it is zero, the signal is
# assumed to have been handled, and execution continues normally. Otherwise, the shell
# assumed to have been handled, and execution continues normally. Otherwise, the shell
# will behave as interrupted except that the return status of the trap is retained.
# will behave as interrupted except that the return status of the trap is retained.
trap
"command rm -rf '
$ZSH
/log/update.lock'; return 1"
EXIT INT QUIT
trap
"
unset -f current_epoch update_last_updated_file update_ohmyzsh
command rm -rf '
$ZSH
/log/update.lock'
return 1
"
EXIT INT QUIT
# Create or update .zsh-update file if missing or malformed
# Create or update .zsh-update file if missing or malformed
if
!
source
"
${
ZSH_CACHE_DIR
}
/.zsh-update"
2>/dev/null
||
[[
-z
"
$LAST_EPOCH
"
]]
;
then
if
!
source
"
${
ZSH_CACHE_DIR
}
/.zsh-update"
2>/dev/null
||
[[
-z
"
$LAST_EPOCH
"
]]
;
then
...
@@ -84,5 +88,3 @@ function update_ohmyzsh() {
...
@@ -84,5 +88,3 @@ function update_ohmyzsh() {
esac
esac
fi
fi
}
}
unset
-f
current_epoch update_last_updated_file update_ohmyzsh
tools/upgrade.sh
100644 → 100755
View file @
889cd7ac
# Use colors, but only if connected to a terminal, and that terminal
#!/usr/bin/env zsh
# supports them.
cd
"
$ZSH
"
# Use colors, but only if connected to a terminal
# and that terminal supports them.
local
-a
RAINBOW
local
RED GREEN YELLOW BLUE UNDER BOLD RESET
if
[
-t
1
]
;
then
if
[
-t
1
]
;
then
RB_RED
=
$(
printf
'\033[38;5;196m'
)
RAINBOW
=(
RB_ORANGE
=
$(
printf
'\033[38;5;202m'
)
"
$(
printf
'\033[38;5;196m'
)
"
RB_YELLOW
=
$(
printf
'\033[38;5;226m'
)
"
$(
printf
'\033[38;5;202m'
)
"
RB_GREEN
=
$(
printf
'\033[38;5;082m'
)
"
$(
printf
'\033[38;5;226m'
)
"
RB_BLUE
=
$(
printf
'\033[38;5;021m'
)
"
$(
printf
'\033[38;5;082m'
)
"
RB_INDIGO
=
$(
printf
'\033[38;5;093m'
)
"
$(
printf
'\033[38;5;021m'
)
"
RB_VIOLET
=
$(
printf
'\033[38;5;163m'
)
"
$(
printf
'\033[38;5;093m'
)
"
"
$(
printf
'\033[38;5;163m'
)
"
)
RED
=
$(
printf
'\033[31m'
)
RED
=
$(
printf
'\033[31m'
)
GREEN
=
$(
printf
'\033[32m'
)
GREEN
=
$(
printf
'\033[32m'
)
...
@@ -16,25 +26,19 @@ if [ -t 1 ]; then
...
@@ -16,25 +26,19 @@ if [ -t 1 ]; then
BOLD
=
$(
printf
'\033[1m'
)
BOLD
=
$(
printf
'\033[1m'
)
UNDER
=
$(
printf
'\033[4m'
)
UNDER
=
$(
printf
'\033[4m'
)
RESET
=
$(
printf
'\033[m'
)
RESET
=
$(
printf
'\033[m'
)
else
RB_RED
=
""
RB_ORANGE
=
""
RB_YELLOW
=
""
RB_GREEN
=
""
RB_BLUE
=
""
RB_INDIGO
=
""
RB_VIOLET
=
""
RED
=
""
GREEN
=
""
YELLOW
=
""
BLUE
=
""
UNDER
=
""
BOLD
=
""
RESET
=
""
fi
fi
cd
"
$ZSH
"
# Update upstream remote to ohmyzsh org
git remote
-v
|
while
read
remote url _
;
do
case
"
$url
"
in
https://github.com/robbyrussell/oh-my-zsh
(
|
.git
)
)
git remote set-url
"
$remote
"
"https://github.com/ohmyzsh/ohmyzsh.git"
break
;;
git@github.com:robbyrussell/oh-my-zsh
(
|
.git
)
)
git remote set-url
"
$remote
"
"git@github.com:ohmyzsh/ohmyzsh.git"
break
;;
esac
done
# Set git-config values known to fix git errors
# Set git-config values known to fix git errors
# Line endings (#4069)
# Line endings (#4069)
...
@@ -45,30 +49,36 @@ git config fsck.zeroPaddedFilemode ignore
...
@@ -45,30 +49,36 @@ git config fsck.zeroPaddedFilemode ignore
git config fetch.fsck.zeroPaddedFilemode ignore
git config fetch.fsck.zeroPaddedFilemode ignore
git config receive.fsck.zeroPaddedFilemode ignore
git config receive.fsck.zeroPaddedFilemode ignore
# autostash on rebase (#7172)
# autostash on rebase (#7172)
resetAutoStash
=
$(
git config
--bool
rebase.autoStash 2>
&1
)
resetAutoStash
=
$(
git config
--bool
rebase.autoStash 2>
/dev/null
)
git config rebase.autoStash
true
git config rebase.autoStash
true
# Update upstream remote to ohmyzsh org
local
ret
=
0
remote
=
$(
git remote
-v
|
awk
'/https:\/\/github\.com\/robbyrussell\/oh-my-zsh\.git/{ print $1; exit }'
)
if
[
-n
"
$remote
"
]
;
then
git remote set-url
"
$remote
"
"https://github.com/ohmyzsh/ohmyzsh.git"
fi
# Update Oh My Zsh
printf
"
${
BLUE
}
%s
${
RESET
}
\n
"
"Updating Oh My Zsh"
printf
"
${
BLUE
}
%s
${
RESET
}
\n
"
"Updating Oh My Zsh"
if
git pull
--rebase
--stat
origin master
last_commit
=
$(
git rev-parse HEAD
)
then
if
git pull
--rebase
--stat
origin master
;
then
printf
'%s %s__ %s %s %s %s %s__ %s\n'
$RB_RED
$RB_ORANGE
$RB_YELLOW
$RB_GREEN
$RB_BLUE
$RB_INDIGO
$RB_VIOLET
$RB_RESET
# Check if it was really updated or not
printf
'%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n'
$RB_RED
$RB_ORANGE
$RB_YELLOW
$RB_GREEN
$RB_BLUE
$RB_INDIGO
$RB_VIOLET
$RB_RESET
if
[[
"
$(
git rev-parse HEAD
)
"
=
"
$last_commit
"
]]
;
then
printf
'%s / __ \%s/ __ \ %s / __ `__ \%s/ / / / %s /_ / %s/ ___/%s __ \ %s\n'
$RB_RED
$RB_ORANGE
$RB_YELLOW
$RB_GREEN
$RB_BLUE
$RB_INDIGO
$RB_VIOLET
$RB_RESET
message
=
"Oh My Zsh is already at the latest version."
printf
'%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n'
$RB_RED
$RB_ORANGE
$RB_YELLOW
$RB_GREEN
$RB_BLUE
$RB_INDIGO
$RB_VIOLET
$RB_RESET
ret
=
80
# non-zero exit code to indicate no changes pulled
printf
'%s\____/%s_/ /_/ %s /_/ /_/ /_/%s\__, / %s /___/%s____/%s_/ /_/ %s\n'
$RB_RED
$RB_ORANGE
$RB_YELLOW
$RB_GREEN
$RB_BLUE
$RB_INDIGO
$RB_VIOLET
$RB_RESET
else
printf
'%s %s %s %s /____/ %s %s %s %s\n'
$RB_RED
$RB_ORANGE
$RB_YELLOW
$RB_GREEN
$RB_BLUE
$RB_INDIGO
$RB_VIOLET
$RB_RESET
message
=
"Hooray! Oh My Zsh has been updated!"
printf
"
${
BLUE
}
%s
\n
"
"Hooray! Oh My Zsh has been updated and/or is at the current version."
fi
printf
"
${
BLUE
}${
BOLD
}
%s
${
UNDER
}
%s
${
RESET
}
\n
"
"To keep up on the latest news and updates, follow us on Twitter:"
"https://twitter.com/ohmyzsh"
printf
'%s %s__ %s %s %s %s %s__ %s\n'
$RAINBOW
$RESET
printf
'%s ____ %s/ /_ %s ____ ___ %s__ __ %s ____ %s_____%s/ /_ %s\n'
$RAINBOW
$RESET
printf
'%s / __ \%s/ __ \ %s / __ `__ \%s/ / / / %s /_ / %s/ ___/%s __ \ %s\n'
$RAINBOW
$RESET
printf
'%s/ /_/ /%s / / / %s / / / / / /%s /_/ / %s / /_%s(__ )%s / / / %s\n'
$RAINBOW
$RESET
printf
'%s\____/%s_/ /_/ %s /_/ /_/ /_/%s\__, / %s /___/%s____/%s_/ /_/ %s\n'
$RAINBOW
$RESET
printf
'%s %s %s %s /____/ %s %s %s %s\n'
$RAINBOW
$RESET
printf
'\n'
printf
"
${
BLUE
}
%s
${
RESET
}
\n
"
"
$message
"
printf
"
${
BLUE
}${
BOLD
}
%s
${
UNDER
}
%s
${
RESET
}
\n
"
"To keep up with the latest news and updates, follow us on Twitter:"
"https://twitter.com/ohmyzsh"
printf
"
${
BLUE
}${
BOLD
}
%s
${
UNDER
}
%s
${
RESET
}
\n
"
"Want to get involved in the community? Join our Discord:"
"https://discord.gg/ohmyzsh"
printf
"
${
BLUE
}${
BOLD
}
%s
${
UNDER
}
%s
${
RESET
}
\n
"
"Want to get involved in the community? Join our Discord:"
"https://discord.gg/ohmyzsh"
printf
"
${
BLUE
}${
BOLD
}
%s
${
UNDER
}
%s
${
RESET
}
\n
"
"Get your Oh My Zsh swag at:"
"https://shop.planetargon.com/collections/oh-my-zsh"
printf
"
${
BLUE
}${
BOLD
}
%s
${
UNDER
}
%s
${
RESET
}
\n
"
"Get your Oh My Zsh swag at:"
"https://shop.planetargon.com/collections/oh-my-zsh"
else
else
status
=
$?
ret
=
$?
printf
"
${
RED
}
%s
${
RESET
}
\n
"
'There was an error updating. Try again later?'
printf
"
${
RED
}
%s
${
RESET
}
\n
"
'There was an error updating. Try again later?'
fi
fi
...
@@ -79,4 +89,4 @@ case "$resetAutoStash" in
...
@@ -79,4 +89,4 @@ case "$resetAutoStash" in
esac
esac
# Exit with `1` if the update failed
# Exit with `1` if the update failed
exit
$
status
exit
$
ret
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment