diff options
Diffstat (limited to 'source/comp/git.d')
-rw-r--r-- | source/comp/git.d | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/source/comp/git.d b/source/comp/git.d new file mode 100644 index 0000000..4f68e95 --- /dev/null +++ b/source/comp/git.d @@ -0,0 +1,28 @@ +module comp.git; + +import std.stdio; +import std.file : dirEntries, SpanMode; +import std.process; +import std.string : strip; + +string gitBranch() { + auto result = execute(["git", "rev-parse", "--abbrev-ref", "HEAD"]); + + if (result.status != 0) + return null; + + return result.output.strip(); +} + +string gitStatus() { + auto result = execute(["git", "status", "--porcelain"]); + + if (result.status != 0) + return null; + + if (result.output.length >= 1) { + return "*"; + } + + return ""; +} |