22
33# Source lib to get the function get_tmux_pwd
44source " ${TMUX_POWERLINE_DIR_LIB} /tmux_adapter.sh"
5+ source " ${TMUX_POWERLINE_DIR_LIB} /vcs_helper.sh"
56
67TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN_DEFAULT=24
7-
8- branch_symbol=" "
9- git_colour=" 5"
10- svn_colour=" 220"
11- hg_colour=" 45"
8+ TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL:- } "
9+ TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR:- 5} "
10+ TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR:- 45} "
11+ TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR:- 220} "
1212
1313
1414generate_segmentrc () {
1515 read -d ' ' rccontents << EORC
1616# Max length of the branch name.
1717export TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN="${TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN_DEFAULT} "
18+ # Default branch symbol
19+ export TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL="${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL} "
20+ # Branch symbol for git repositories
21+ # export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL="\$ {TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}"
22+ # Branch symbol for hg/mercurial repositories
23+ # export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL="\$ {TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}"
24+ # Branch symbol for SVN repositories
25+ # export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL="\$ {TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}"
26+ # Branch symbol colour for git repositories
27+ export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR="${TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR} "
28+ # Branch symbol colour for hg/mercurial repositories
29+ export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR="${TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR} "
30+ # Branch symbol colour for SVN repositories
31+ export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR="${TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR} "
1832EORC
1933 echo " $rccontents "
2034}
2135
2236
2337run_segment () {
2438 __process_settings
39+ { read vcs_type; read root_path; } < <( get_vcs_type_and_root_path)
2540 tmux_path=$( get_tmux_cwd)
2641 cd " $tmux_path "
27- branch=" "
28- if [ -n " ${git_branch=$(__parse_git_branch)} " ]; then
29- branch=" $git_branch "
30- elif [ -n " ${svn_branch=$(__parse_svn_branch)} " ]; then
31- branch=" $svn_branch "
32- elif [ -n " ${hg_branch=$(__parse_hg_branch)} " ]; then
33- branch=" $hg_branch "
34- fi
42+ branch=" $( __parse_${vcs_type} _branch) "
3543
3644 if [ -n " $branch " ]; then
3745 echo " ${branch} "
@@ -42,13 +50,6 @@ run_segment() {
4250
4351# Show git banch.
4452__parse_git_branch () {
45- type git > /dev/null 2>&1
46- if [ " $? " -ne 0 ]; then
47- return
48- fi
49-
50- # git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ \[\1\]/'
51-
5253 # Quit if this is not a Git repo.
5354 branch=$( git symbolic-ref HEAD 2> /dev/null)
5455 if [[ -z $branch ]] ; then
@@ -64,16 +65,11 @@ __parse_git_branch() {
6465 branch=${branch# refs\/ heads\/ }
6566 branch=$( __truncate_branch_name $branch )
6667
67- echo -n " #[fg=colour${git_colour } ]${branch_symbol } #[fg=${TMUX_POWERLINE_CUR_SEGMENT_FG} ]${branch} "
68+ echo -n " #[fg=colour${TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR } ]${TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL } #[fg=${TMUX_POWERLINE_CUR_SEGMENT_FG} ]${branch} "
6869}
6970
7071# Show SVN branch.
7172__parse_svn_branch () {
72- type svn > /dev/null 2>&1
73- if [ " $? " -ne 0 ]; then
74- return
75- fi
76-
7773 local svn_info=$( svn info 2> /dev/null)
7874 if [ -z " ${svn_info} " ]; then
7975 return
@@ -85,23 +81,18 @@ __parse_svn_branch() {
8581
8682 local branch=$( echo " ${svn_url} " | grep -E -o ' [^/]+$' )
8783 branch=$( __truncate_branch_name $branch )
88- echo " #[fg=colour${svn_colour } ]${branch_symbol } #[fg=${TMUX_POWERLINE_CUR_SEGMENT_FG} ]${branch} "
84+ echo " #[fg=colour${TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR } ]${TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL } #[fg=${TMUX_POWERLINE_CUR_SEGMENT_FG} ]${branch} "
8985}
9086
9187__parse_hg_branch () {
92- type hg > /dev/null 2>&1
93- if [ " $? " -ne 0 ]; then
94- return
95- fi
96-
9788 summary=$( hg summary)
9889 if [ " $? " -ne 0 ]; then
9990 return
10091 fi
10192
10293 local branch=$( echo " $summary " | grep ' branch:' | cut -d ' ' -f2)
10394 branch=$( __truncate_branch_name $branch )
104- echo " #[fg=colour${hg_colour } ]${branch_symbol } #[fg=${TMUX_POWERLINE_CUR_SEGMENT_FG} ]${branch} "
95+ echo " #[fg=colour${TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR } ]${TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL } #[fg=${TMUX_POWERLINE_CUR_SEGMENT_FG} ]${branch} "
10596}
10697
10798
@@ -116,4 +107,25 @@ __process_settings() {
116107 if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN " ]; then
117108 export TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN_DEFAULT} "
118109 fi
110+ if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL " ]; then
111+ export TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL} "
112+ fi
113+ if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL " ]; then
114+ export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL} "
115+ fi
116+ if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL " ]; then
117+ export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL} "
118+ fi
119+ if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL " ]; then
120+ export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL} "
121+ fi
122+ if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR " ]; then
123+ export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR} "
124+ fi
125+ if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR " ]; then
126+ export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR} "
127+ fi
128+ if [ -z " $TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR " ]; then
129+ export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR=" ${TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR} "
130+ fi
119131}
0 commit comments