Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding mercuial prompt #401

Merged
merged 1 commit into from
Feb 24, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion config/git.lua
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ function git_prompt_filter()
end

clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..branch..")")
clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", "")
return true
end

Expand All @@ -47,4 +48,4 @@ function git_prompt_filter()
return false
end

clink.prompt.register_filter(git_prompt_filter, 50)
clink.prompt.register_filter(git_prompt_filter, 50)
54 changes: 54 additions & 0 deletions config/hg.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
-- Find out current branch
-- @return {false|mercurial branch name}
---
function get_hg_branch()
for line in io.popen("hg branch 2>nul"):lines() do
local m = line:match("(.+)$")
if m then
return m
end
end

return false
end

---
-- Get the status of working dir
-- @return {bool}
---
function get_hg_status()
for line in io.popen("hg status"):lines() do
return false
end
return true
end

function hg_prompt_filter()

-- Colors for mercurial status
local colors = {
clean = "\x1b[1;37;40m",
dirty = "\x1b[31;1m",
}

local branch = get_hg_branch()
if branch then
-- Has branch => therefore it is a mercurial folder, now figure out status
if get_hg_status() then
color = colors.clean
else
color = colors.dirty
end

clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", color.."("..branch..")")
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", "")
return true
end

-- No mercurial present or not in mercurial file
clink.prompt.value = string.gsub(clink.prompt.value, "{hg}", "")
return false
end

clink.prompt.register_filter(hg_prompt_filter, 50)
2 changes: 1 addition & 1 deletion vendor/init.bat
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

:: Change the prompt style
:: Mmm tasty lamb
@prompt $E[1;32;40m$P$S{git}$S$_$E[1;30;40m{lamb}$S$E[0m
@prompt $E[1;32;40m$P$S{git}{hg}$S$_$E[1;30;40m{lamb}$S$E[0m

:: Pick right version of clink
@if "%PROCESSOR_ARCHITECTURE%"=="x86" (
Expand Down