2017-03-20 19:51:00 +07:00
#!/usr/bin/env bash
2022-01-12 18:27:18 +09:00
function _omb_upgrade {
# Use colors, but only if connected to a terminal, and that terminal
# supports them.
2023-02-22 15:06:14 +09:00
local ncolors =
2022-01-12 18:27:18 +09:00
if type -P tput & >/dev/null; then
2023-02-22 15:06:14 +09:00
ncolors = $( tput colors)
2022-01-12 18:27:18 +09:00
fi
2017-03-19 15:40:25 +07:00
2023-02-22 15:06:14 +09:00
local RED GREEN BLUE BOLD NORMAL
2022-01-12 18:27:18 +09:00
if [ [ -t 1 && $ncolors && $ncolors -ge 8 ] ] ; then
2023-02-22 15:06:14 +09:00
RED = $( tput setaf 1 2>/dev/null || tput AF 1 2>/dev/null)
GREEN = $( tput setaf 2 2>/dev/null || tput AF 2 2>/dev/null)
BLUE = $( tput setaf 4 2>/dev/null || tput AF 4 2>/dev/null)
BOLD = $( tput bold 2>/dev/null || tput md 2>/dev/null)
NORMAL = $( tput sgr0 2>/dev/null || tput me 2>/dev/null)
2022-01-12 18:27:18 +09:00
else
2023-02-22 15:06:14 +09:00
RED = ""
GREEN = ""
BLUE = ""
BOLD = ""
NORMAL = ""
2022-01-12 18:27:18 +09:00
fi
2023-02-22 15:06:14 +09:00
printf '%s\n' " ${ BLUE } Updating Oh My Bash ${ NORMAL } "
2022-01-12 18:27:18 +09:00
2022-02-22 18:16:38 +09:00
# Note: The git option "-C PATH" is only supported from git-1.8.5
# (https://github.com/git/git/commit/44e1e4d6 2013-09). On the other hand,
# the synonym "--git-dir=PATH/.git --work-tree=PATH" is supported from
# git-1.5.3 (https://github.com/git/git/commit/892c41b9 2007-06).
if ! command git --git-dir= " $OSH /.git " --work-tree= " $OSH " pull --rebase --stat origin master; then
2022-01-31 19:15:53 +09:00
# In case it enters the rebasing mode
printf '%s\n' "oh-my-bash: running 'git rebase --abort'..."
2022-02-22 18:16:38 +09:00
command git --git-dir= " $OSH /.git " --work-tree= " $OSH " rebase --abort
2022-01-31 19:15:53 +09:00
printf " ${ RED } %s ${ NORMAL } \n " \
'There was an error updating.' \
" If you have uncommited changes in ' $BOLD $OSH $NORMAL $RED ', please commit, stash or discard them and retry updating. " \
" If you have your own local commits in ' $BOLD $OSH $NORMAL $RED ' that conflict with the upstream changes, please resolve conflicts and merge the upstream manually. "
2022-01-12 18:27:18 +09:00
return 1
fi
2022-01-06 00:16:32 +09:00
2017-03-19 15:40:25 +07:00
printf '%s' " $GREEN "
2023-02-22 15:06:14 +09:00
# shellcheck disable=SC1003,SC2016
printf '%s\n' \
' __ __ __ ' \
' ____ / /_ ____ ___ __ __ / /_ ____ ______/ /_ ' \
' / __ \/ __ \ / __ `__ \/ / / / / __ \/ __ `/ ___/ __ \' \
'/ /_/ / / / / / / / / / / /_/ / / /_/ / /_/ (__ ) / / /' \
'\____/_/ /_/ /_/ /_/ /_/\__, / /_.___/\__,_/____/_/ /_/ ' \
' /____/ '
2017-03-19 15:40:25 +07:00
printf " ${ BLUE } %s\n " "Hooray! Oh My Bash has been updated and/or is at the current version."
2017-10-10 18:13:21 +07:00
printf " ${ BLUE } ${ BOLD } %s ${ NORMAL } \n " "To keep up on the latest news and updates, follow us on GitHub: https://github.com/ohmybash/oh-my-bash"
2022-01-12 18:27:18 +09:00
if [ [ $- = = *i* ] ] ; then
declare -f _omb_util_unload & >/dev/null && _omb_util_unload
2023-02-22 15:06:14 +09:00
# shellcheck disable=SC1090
2022-01-12 18:27:18 +09:00
source ~/.bashrc
fi
}
_omb_upgrade