Now with git in prompt (fix for #13)

This commit is contained in:
Samuel Vasko 2013-11-15 17:06:15 +01:00
parent 3fefa9698e
commit c2b37021d4
2 changed files with 53 additions and 2 deletions

50
config/git.lua Normal file
View File

@ -0,0 +1,50 @@
---
-- Find out current branch
-- @return {false|git branch name}
---
function get_git_branch()
for line in io.popen("git 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_git_status()
return os.execute("git diff-files --quiet --ignore-submodules")
end
function git_prompt_filter()
-- Colors for git status
local colors = {
clean = "\x1b[1;37;40m",
dirty = "\x1b[31;1m",
}
local branch = get_git_branch()
if branch then
-- Has branch => therefore it is a git folder, now figure out status
if get_git_status() then
color = colors.clean
else
color = colors.dirty
end
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", color.."("..branch..")")
return true
end
-- No git present or not in git file
clink.prompt.value = string.gsub(clink.prompt.value, "{git}", "")
return false
end
clink.prompt.register_filter(git_prompt_filter, 50)

5
vendor/init.bat vendored
View File

@ -9,7 +9,7 @@
:: World without Unicode is a sad world
@chcp 65001>nul
:: It has to be lambda, I already made a logo
@prompt $E[1;32;40m$P $_$E[1;30;40mλ $E[0m
@prompt $E[1;32;40m$P$S{git}$S$_$E[1;30;40mλ$S$E[0m
@chcp %cp%>nul
@ -38,9 +38,10 @@
:: Add aliases
@doskey /macrofile=%rootDir%\config\aliases
:: Set home path
:: cd into users homedir
@cd /d %USERPROFILE%
:: Set home path
@set HOME=%USERPROFILE%
@echo Welcome to cmder!