@ -7,8 +7,7 @@ function async_run()
} &
} &
}
}
function git_prompt_dir( )
function git_prompt_dir( ) {
{
# assume the gitstatus.sh is in the same directory as this script
# assume the gitstatus.sh is in the same directory as this script
# code thanks to http://stackoverflow.com/questions/59895
# code thanks to http://stackoverflow.com/questions/59895
if [ -z " $__GIT_PROMPT_DIR " ] ; then
if [ -z " $__GIT_PROMPT_DIR " ] ; then
@ -23,11 +22,10 @@ function git_prompt_dir()
}
}
function echoc( ) {
function echoc( ) {
echo -e " ${ 1 } $2 ${ ResetColor } " | sed 's/\\\]//g' | sed 's/\\\[//g'
echo -e " ${ 1 } $2 ${ ResetColor } " | sed 's/\\\]//g' | sed 's/\\\[//g'
}
}
function get_theme( )
function get_theme( ) {
{
local CUSTOM_THEME_FILE = " ${ HOME } /.git-prompt-colors.sh "
local CUSTOM_THEME_FILE = " ${ HOME } /.git-prompt-colors.sh "
local DEFAULT_THEME_FILE = " ${ __GIT_PROMPT_DIR } /themes/Default.bgptheme "
local DEFAULT_THEME_FILE = " ${ __GIT_PROMPT_DIR } /themes/Default.bgptheme "
@ -67,16 +65,15 @@ function get_theme()
fi
fi
}
}
function git_prompt_load_theme( )
function git_prompt_load_theme( ) {
{
git_prompt_reset
get_theme
get_theme
local DEFAULT_THEME_FILE = " ${ __GIT_PROMPT_DIR } /themes/Default.bgptheme "
local DEFAULT_THEME_FILE = " ${ __GIT_PROMPT_DIR } /themes/Default.bgptheme "
source " ${ DEFAULT_THEME_FILE } "
source " ${ DEFAULT_THEME_FILE } "
source " ${ __GIT_PROMPT_THEME_FILE } "
source " ${ __GIT_PROMPT_THEME_FILE } "
}
}
function git_prompt_list_themes( )
function git_prompt_list_themes( ) {
{
local oldTheme
local oldTheme
local oldThemeFile
local oldThemeFile
@ -160,7 +157,7 @@ function gp_set_file_var() {
# return 0 (true) if any FILEPATH is readable, set ENVAR to it
# return 0 (true) if any FILEPATH is readable, set ENVAR to it
# return 1 (false) if not
# return 1 (false) if not
function gp_maybe_set_envar_to_path( ) {
function gp_maybe_set_envar_to_path( ) {
local envar = " $1 "
local envar = " $1 "
shift
shift
local file
local file
@ -183,6 +180,7 @@ git_prompt_reset() {
for var in GIT_PROMPT_DIR __GIT_PROMPT_COLORS_FILE __PROMPT_COLORS_FILE __GIT_STATUS_CMD GIT_PROMPT_THEME_NAME; do
for var in GIT_PROMPT_DIR __GIT_PROMPT_COLORS_FILE __PROMPT_COLORS_FILE __GIT_STATUS_CMD GIT_PROMPT_THEME_NAME; do
unset $var
unset $var
done
done
unset -f prompt_callback
}
}
# gp_format_exit_status RETVAL
# gp_format_exit_status RETVAL
@ -203,8 +201,7 @@ gp_format_exit_status() {
fi
fi
}
}
function git_prompt_config( )
function git_prompt_config( ) {
{
#Checking if root to change output
#Checking if root to change output
_isroot = false
_isroot = false
[ [ $UID -eq 0 ] ] && _isroot = true
[ [ $UID -eq 0 ] ] && _isroot = true
@ -225,10 +222,10 @@ function git_prompt_config()
git_prompt_load_theme
git_prompt_load_theme
if [ "`type -t prompt_callback`" = 'function' ] ; then
if is_function prompt_callback ; then
prompt_callback = "prompt_callback"
prompt_callback = "prompt_callback"
else
else
prompt_callback = "prompt_callback_default"
prompt_callback = "prompt_callback_default"
fi
fi
if [ $GIT_PROMPT_LAST_COMMAND_STATE = 0 ] ; then
if [ $GIT_PROMPT_LAST_COMMAND_STATE = 0 ] ; then
@ -369,42 +366,42 @@ function setGitPrompt() {
_have_find_mmin = 1
_have_find_mmin = 1
function olderThanMinutes( ) {
function olderThanMinutes( ) {
local matches
local matches
local find_exit_code
local find_exit_code
if [ [ -z " $_find_command " ] ] ; then
if command -v gfind > /dev/null; then
_find_command = gfind
else
_find_command = find
fi
fi
if [ [ " $_have_find_mmin " = 1 ] ] ; then
if [ [ -z " $_find_command " ] ] ; then
matches = ` " $_find_command " " $1 " -mmin +" $2 " 2> /dev/null`
if command -v gfind > /dev/null; then
find_exit_code = " $? "
_find_command = gfind
if [ [ -n " $matches " ] ] ; then
else
return 0
_find_command = find
else
if [ [ " $find_exit_code " != 0 ] ] ; then
_have_find_mmin = 0
else
return 1
fi
fi
fi
fi
fi
# try perl, solaris ships with perl
if [ [ " $_have_find_mmin " = 1 ] ] ; then
if command -v perl > /dev/null; then
matches = ` " $_find_command " " $1 " -mmin +" $2 " 2> /dev/null`
perl -e '((time - (stat("' " $1 " '"))[9]) / 60) > ' " $2 " ' && exit(0) || exit(1)'
find_exit_code = " $? "
return " $? "
if [ [ -n " $matches " ] ] ; then
return 0
else
else
echo >& 2
if [ [ " $find_exit_code " != 0 ] ] ; then
echo " [1;31mWARNING [0m: neither a find that supports -mmin (such as GNU find) or perl is available, disabling remote status checking. Install GNU find as gfind or perl to enable this feature, or set GIT_PROMPT_FETCH_REMOTE_STATUS=0 to disable this warning." >& 2
_have_find_mmin = 0
echo >& 2
else
GIT_PROMPT_FETCH_REMOTE_STATUS = 0
return 1
return 1
fi
fi
fi
fi
# try perl, solaris ships with perl
if command -v perl > /dev/null; then
perl -e '((time - (stat("' " $1 " '"))[9]) / 60) > ' " $2 " ' && exit(0) || exit(1)'
return " $? "
else
echo >& 2
echo " [1;31mWARNING [0m: neither a find that supports -mmin (such as GNU find) or perl is available, disabling remote status checking. Install GNU find as gfind or perl to enable this feature, or set GIT_PROMPT_FETCH_REMOTE_STATUS=0 to disable this warning." >& 2
echo >& 2
GIT_PROMPT_FETCH_REMOTE_STATUS = 0
return 1
fi
}
}
function checkUpstream( ) {
function checkUpstream( ) {
@ -524,8 +521,14 @@ function updatePrompt() {
PS1 = " ${ NEW_PROMPT //_LAST_COMMAND_INDICATOR_/ ${ LAST_COMMAND_INDICATOR } } "
PS1 = " ${ NEW_PROMPT //_LAST_COMMAND_INDICATOR_/ ${ LAST_COMMAND_INDICATOR } } "
}
}
# Use exit status from declare command to determine whether input argument is a
# bash function
function is_function {
declare -Ff " $1 " >/dev/null;
}
function prompt_callback_default {
function prompt_callback_default {
return
return
}
}
function gp_install_prompt {
function gp_install_prompt {