fix for no branch in pwd

This commit is contained in:
laerus 2016-09-13 21:24:21 +03:00
parent 724e8e5861
commit 752fe1f7f0
2 changed files with 22 additions and 17 deletions

View file

@ -23,18 +23,18 @@ from xonsh.prompt.gitstatus import gitstatus_prompt
@xl.lazyobject @xl.lazyobject
def FORMATTER_DICT(): def FORMATTER_DICT():
return dict( return dict(
user=os.environ.get('USERNAME' if xp.ON_WINDOWS else 'USER', '<user>'), user=os.environ.get('USERNAME' if xp.ON_WINDOWS else 'USER', '<user>'),
prompt_end='#' if xt.is_superuser() else '$', prompt_end='#' if xt.is_superuser() else '$',
hostname=socket.gethostname().split('.', 1)[0], hostname=socket.gethostname().split('.', 1)[0],
cwd=_dynamically_collapsed_pwd, cwd=_dynamically_collapsed_pwd,
cwd_dir=lambda: os.path.dirname(_replace_home_cwd()), cwd_dir=lambda: os.path.dirname(_replace_home_cwd()),
cwd_base=lambda: os.path.basename(_replace_home_cwd()), cwd_base=lambda: os.path.basename(_replace_home_cwd()),
short_cwd=_collapsed_pwd, short_cwd=_collapsed_pwd,
curr_branch=current_branch, curr_branch=current_branch,
branch_color=branch_color, branch_color=branch_color,
branch_bg_color=branch_bg_color, branch_bg_color=branch_bg_color,
current_job=_current_job, current_job=_current_job,
env_name=env_name, env_name=env_name,
vte_new_tab_cwd=vte_new_tab_cwd, vte_new_tab_cwd=vte_new_tab_cwd,
gitstatus=gitstatus_prompt, gitstatus=gitstatus_prompt,
) )

View file

@ -85,12 +85,17 @@ def current_branch(pad=NotImplemented):
branch = None branch = None
cmds = builtins.__xonsh_commands_cache__ cmds = builtins.__xonsh_commands_cache__
if cmds.lazy_locate_binary('git') or cmds.is_empty(): if cmds.lazy_locate_binary('git') or cmds.is_empty():
branch = xonsh.prompt.gitstatus.gitstatus().branch try:
if (cmds.lazy_locate_binary('hg') or cmds.is_empty()) and not branch: status = xonsh.prompt.gitstatus.gitstatus()
except subprocess.CalledProcessError:
branch = None
else:
branch = status.branch
elif (cmds.lazy_locate_binary('hg') or cmds.is_empty()) and not branch:
branch = get_hg_branch() branch = get_hg_branch()
if isinstance(branch, subprocess.TimeoutExpired): if isinstance(branch, subprocess.TimeoutExpired):
branch = '<branch-timeout>' branch = '<branch-timeout>'
_first_branch_timeout_message() # _first_branch_timeout_message()
return branch or None return branch or None