Skip to content

Commit

Permalink
Merge pull request #401 from utek/hg_prompt
Browse files Browse the repository at this point in the history
Adding mercuial prompt
  • Loading branch information
MartiUK committed Feb 24, 2015
2 parents 8275f00 + 8a88516 commit af30a90
Show file tree
Hide file tree
Showing 3 changed files with 57 additions and 2 deletions.
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

0 comments on commit af30a90

Please sign in to comment.