@ -15,11 +15,98 @@ cd "$ZSH"
# Use colors, but only if connected to a terminal
# and that terminal supports them.
# The [ -t 1 ] check only works when the function is not called from
# a subshell (like in `$(...)` or `(...)`, so this hack redefines the
# function at the top level to always return false when stdout is not
# a tty.
if [ -t 1 ] ; then
is_tty( ) {
true
}
else
is_tty( ) {
false
}
fi
# This function uses the logic from supports-hyperlinks[1][2], which is
# made by Kat Marchán (@zkat) and licensed under the Apache License 2.0.
# [1] https://github.com/zkat/supports-hyperlinks
# [2] https://crates.io/crates/supports-hyperlinks
#
# Copyright (c) 2021 Kat Marchán
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
supports_hyperlinks( ) {
# $FORCE_HYPERLINK must be set and be non-zero (this acts as a logic bypass)
if [ -n " $FORCE_HYPERLINK " ] ; then
[ " $FORCE_HYPERLINK " != 0 ]
return $?
fi
# If stdout is not a tty, it doesn't support hyperlinks
is_tty || return 1
# DomTerm terminal emulator (domterm.org)
if [ -n " $DOMTERM " ] ; then
return 0
fi
# VTE-based terminals above v0.50 (Gnome Terminal, Guake, ROXTerm, etc)
if [ -n " $VTE_VERSION " ] ; then
[ $VTE_VERSION -ge 5000 ]
return $?
fi
# If $TERM_PROGRAM is set, these terminals support hyperlinks
case " $TERM_PROGRAM " in
Hyper| iTerm.app| terminology| WezTerm) return 0 ; ;
esac
# kitty supports hyperlinks
if [ " $TERM " = xterm-kitty ] ; then
return 0
fi
# Windows Terminal or Konsole also support hyperlinks
if [ -n " $WT_SESSION " ] || [ -n " $KONSOLE_VERSION " ] ; then
return 0
fi
return 1
}
fmt_link( ) {
# $1: text, $2: url, $3: fallback mode
if supports_hyperlinks; then
printf '\033]8;;%s\a%s\033]8;;\a\n' " $2 " " $1 "
return
fi
case " $3 " in
--text) printf '%s\n' " $1 " ; ;
--url| *) fmt_underline " $2 " ; ;
esac
}
fmt_underline( ) {
is_tty && printf '\033[4m%s\033[24m\n' " $* " || printf '%s\n' " $* "
}
setopt typeset_silent
typeset -a RAINBOW
typeset RED GREEN YELLOW BLUE BOLD DIM UNDER RESET
if [ -t 1 ] ; then
if is_tty ; then
RAINBOW = (
" $( printf '\033[38;5;196m' ) "
" $( printf '\033[38;5;202m' ) "
@ -35,8 +122,6 @@ 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[0m' )
fi
@ -104,10 +189,10 @@ if git pull --rebase --stat $remote $branch; then
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 " "Get your Oh My Zsh swag at:" "https://shop.planetargon.com/collections/oh-my-zsh"
printf " ${ BLUE } %s ${ RESET } \n\n " " $message "
printf " ${ BLUE } ${ BOLD } %s %s ${ RESET } \n " "To keep up with the latest news and updates, follow us on Twitter:" " $( fmt_link @ohmyzsh https://twitter.com/ohmyzsh) "
printf " ${ BLUE } ${ BOLD } %s %s ${ RESET } \n " "Want to get involved in the community? Join our Discord:" " $( fmt_link "Discord server" https://discord.gg/ohmyzsh) "
printf " ${ BLUE } ${ BOLD } %s %s ${ RESET } \n " "Get your Oh My Zsh swag at:" " $( fmt_link "Planet Argon Shop" https://shop.planetargon.com/collections/oh-my-zsh) "
else
ret = $?
printf " ${ RED } %s ${ RESET } \n " 'There was an error updating. Try again later?'