Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
8ede6c6a
Commit
8ede6c6a
authored
Jan 08, 2014
by
Brice Dutheil
Browse files
Added further cleanup and svn status information
parent
8bf8e1ec
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/svn-fast-info/svn-fast-info.plugin.zsh
View file @
8ede6c6a
...
...
@@ -14,7 +14,7 @@ function svn_prompt_info() {
info
=
$(
svn info 2>&1
)
||
return
1
;
# capture stdout and stderr
local
repo_need_upgrade
=
$(
svn_repo_need_upgrade
$info
)
if
[
-n
$repo_need_upgrade
]
;
then
if
[
[
-n
$repo_need_upgrade
]
]
;
then
printf
'%s%s%s%s%s%s%s\n'
\
$ZSH_PROMPT_BASE_COLOR
\
$ZSH_THEME_SVN_PROMPT_PREFIX
\
...
...
@@ -22,57 +22,53 @@ function svn_prompt_info() {
$repo_need_upgrade
\
$ZSH_PROMPT_BASE_COLOR
\
$ZSH_THEME_SVN_PROMPT_SUFFIX
\
$ZSH_PROMPT_BASE_COLOR
\
$ZSH_PROMPT_BASE_COLOR
else
# something left for you to fix -
# repo name and rev aren't used here, did you forget them?
# especially since you set a repo name color
# if the prompt is alright this way, leave it as is and just
# delete the comment. The functions itself could stay imo,
# gives others the chance to use them.
printf
'%s%s%s%s%s%s%s%s%s\n'
\
printf
'%s%s%s %s%s:%s%s%s%s%s'
\
$ZSH_PROMPT_BASE_COLOR
\
$ZSH_THEME_SVN_PROMPT_PREFIX
\
$ZSH_THEME_REPO_NAME_COLOR
\
$(
svn_get_branch_name
$info
)
${
svn_branch_name
}
\
$ZSH_PROMPT_BASE_COLOR
$(
svn_dirty_choose
$info
)
$ZSH_PROMPT_BASE_COLOR
$ZSH_THEME_SVN_PROMPT_SUFFIX
\
\
"
$(
svn_status_info
$info
)
"
\
$ZSH_PROMPT_BASE_COLOR
\
\
$ZSH_THEME_BRANCH_NAME_COLOR
\
$(
svn_get_branch_name
$info
)
\
$ZSH_PROMPT_BASE_COLOR
\
\
$(
svn_get_revision
$info
)
\
$ZSH_PROMPT_BASE_COLOR
\
\
$ZSH_THEME_SVN_PROMPT_SUFFIX
\
$ZSH_PROMPT_BASE_COLOR
fi
}
function
svn_repo_need_upgrade
()
{
grep
-q
"E155036"
<<<
${
1
:-
$(
svn info 2> /dev/null
)
}
&&
\
echo
"E155036: upgrade repo with svn upgrade"
}
function
svn_get_branch_name
()
{
echo
${
1
:-
$(
svn info 2> /dev/null
)
}
|
\
grep
'^URL:'
| egrep
-o
'(tags|branches)/[^/]+|trunk'
|
\
egrep
-o
'[^/]+$'
grep
'^URL:'
<<<
"
${
1
:-
$(
svn info 2> /dev/null
)
}
"
| egrep
-o
'(tags|branches)/[^/]+|trunk'
}
function
svn_get_repo_name
()
{
# I think this can be further cleaned up as well, not sure how,
# as I can't test it
local
svn_root
local
info
=
${
1
:-
$(
svn info 2> /dev/null
)
}
echo
$info
|
sed
's/Repository\ Root:\ .*\///p'
|
read
svn_root
echo
$info
|
sed
"s/URL:
\
.*
$svn_root
\/
//p"
function
svn_get_repo_root_name
()
{
grep
'^Repository\ Root:'
<<<
"
${
1
:-
$(
svn info 2> /dev/null
)
}
"
|
sed
's#.*/##'
}
function
svn_get_revision
()
{
# does this work as it should?
echo
${
1
:-
$(
svn info 2> /dev/null
)
}
|
sed
's/Revision: //p'
echo
"
${
1
:-
$(
svn info 2> /dev/null
)
}
"
|
sed
-n
's/Revision: //p'
}
function
svn_dirty_choose
()
{
if
svn status |
grep
-E
'^\s*[ACDIM!?L]'
&> /dev/null
;
then
echo
$ZSH_THEME_SVN_PROMPT_DIRTY
else
echo
$ZSH_THEME_SVN_PROMPT_CLEAN
fi
function
svn_status_info
()
{
local
svn_status_string
=
"
$ZSH_THEME_SVN_PROMPT_CLEAN
"
local
svn_status
=
"
$(
svn status 2> /dev/null
)
"
;
if
grep
-E
'^\s*A'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_ADDITIONS
:-
+
}
"
;
fi
if
grep
-E
'^\s*D'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_DELETIONS
:-
✖
}
"
;
fi
if
grep
-E
'^\s*M'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_MODIFICATIONS
:-
✎
}
"
;
fi
if
grep
-E
'^\s*[R~]'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_REPLACEMENTS
:-
∿
}
"
;
fi
if
grep
-E
'^\s*\?'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_UNTRACKED
:-
?
}
"
;
fi
if
grep
-E
'^\s*[CI!L]'
&> /dev/null
<<<
$svn_status
;
then
svn_status_string
=
"
$svn_status_string
${
ZSH_THEME_SVN_PROMPT_DIRTY
:-
'!'
}
"
;
fi
echo
$svn_status_string
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment