1
2
3
4
5
6
7
8
|
#-------------------------------------------------------------------------
# get_fossil_data()
#
# If the current directory is part of a fossil checkout, then populate
# a series of global variables based on the current state of that
# checkout. Variables are populated based on the output of the [fossil info]
# command.
|
<
|
1
2
3
4
5
6
7
|
#-------------------------------------------------------------------------
# get_fossil_data()
#
# If the current directory is part of a fossil checkout, then populate
# a series of global variables based on the current state of that
# checkout. Variables are populated based on the output of the [fossil info]
# command.
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
}
#-------------------------------------------------------------------------
# set_prompt()
#
# Set the PS1 variable. If the current directory is part of a fossil
# checkout then the prompt contains information relating to the state
# of the checkout.
#
# Otherwise, if the current directory is not part of a fossil checkout, it
# is set to a fairly standard bash prompt containing the host name, user
# name and current directory.
#
function set_prompt() {
get_fossil_data
if [ -n "$fossil_info_project_name" ] ; then
project=$fossil_info_project_name
checkout=`echo $fossil_info_checkout | sed 's/^\(........\).*/\1/'`
date=`echo $fossil_info_checkout | sed 's/^[^ ]* *..//' | sed 's/:[^:]*$//'`
tags=$fossil_info_tags
local_root=`echo $fossil_info_local_root | sed 's/\/$//'`
local=`pwd | sed "s*${local_root}**" | sed "s/^$/\//"`
# Color the first part of the prompt blue if this is a clean checkout.
# Or red if it has been edited in any way at all. Set $c1 to the escape
# sequence required to change the type to the required color. And $c2
# to the sequence that changes it back.
#
if [ -n "`fossil chang`" ] ; then
c1="\[\033[1;31m\]" # red
else
c1="\[\033[1;34m\]" # blue
fi
c2="\[\033[0m\]"
PS1="$c1${project}.${tags}$c2 ${checkout} (${date}):${local}$c1\$$c2 "
else
PS1="\u@\h:\w\$ "
fi
}
PROMPT_COMMAND=set_prompt
|
|
|
<
<
<
<
<
<
<
|
|
<
|
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
}
#-------------------------------------------------------------------------
# set_prompt()
#
# Set the PS1 variable. If the current directory is part of a fossil
# checkout then the prompt contains information relating to the state
# of the checkout.
#
# Otherwise, if the current directory is not part of a fossil checkout, it
# is set to a fairly standard bash prompt containing the host name, user
# name and current directory.
#
function set_prompt() {
get_fossil_data
if [ -n "$fossil_info_project_name" ] ; then
# Color the path part of the prompt blue if this is a clean checkout
# Or red if it has been edited in any way at all. Set $c1 to the escape
# sequence required to change the type to the required color. And $c2
# to the sequence that changes it back.
#
if [ -n "`fossil chang`" ] ; then
c1="\[\033[1;31m\]" # red
else
c1="\[\033[1;34m\]" # blue
fi
c2="\[\033[0m\]"
PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:$c1\w\$$c2 "
else
PS1="\[\033[01;32m\]\u@\h\[\033[00m\]:\w\$ "
fi
}
PROMPT_COMMAND=set_prompt
|