summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2024-01-11 00:43:24 +0800
committerruki <[email protected]>2024-01-11 00:43:24 +0800
commit8db99f3c25f137b46444e4e4b12d874d3d2f8978 (patch)
tree80397f5230af0814fd9a716ab518f3b9d674e9a8
parentd17d638df1f626f02a60ca6f2c284c217a63fa74 (diff)
fix git.branch
-rw-r--r--xmake/modules/devel/git/branch.lua29
-rw-r--r--xmake/modules/devel/git/lastcommit.lua1
2 files changed, 26 insertions, 4 deletions
diff --git a/xmake/modules/devel/git/branch.lua b/xmake/modules/devel/git/branch.lua
index b2a8602cb..08f1f7bf0 100644
--- a/xmake/modules/devel/git/branch.lua
+++ b/xmake/modules/devel/git/branch.lua
@@ -21,7 +21,7 @@
-- imports
import("core.base.option")
import("lib.detect.find_tool")
-import("branches", {alias = "git_branches"})
+import("net.proxy")
-- get current branch
--
@@ -38,8 +38,29 @@ import("branches", {alias = "git_branches"})
--
function main(opt)
opt = opt or {}
- local branches = git_branches(opt.repodir)
- if branches and #branches > 0 then
- return branches[1]
+
+ -- find git
+ local git = assert(find_tool("git"), "git not found!")
+
+ -- init arguments
+ local argv = {"branch", "--show-current"}
+
+ -- trace
+ if option.get("verbose") then
+ print("%s %s", git.program, os.args(argv))
+ end
+
+ -- use proxy?
+ local envs
+ local proxy_conf = proxy.config(url)
+ if proxy_conf then
+ envs = {ALL_PROXY = proxy_conf}
+ end
+
+ -- get current branch
+ local branch = os.iorunv(git.program, argv, {envs = envs, curdir = opt.repodir})
+ if branch then
+ branch = branch:trim()
end
+ return branch
end
diff --git a/xmake/modules/devel/git/lastcommit.lua b/xmake/modules/devel/git/lastcommit.lua
index 1ad6de1f4..02e5c71f7 100644
--- a/xmake/modules/devel/git/lastcommit.lua
+++ b/xmake/modules/devel/git/lastcommit.lua
@@ -38,6 +38,7 @@ import("net.proxy")
-- @endcode
--
function main(opt)
+ opt = opt or {}
-- find git
local git = assert(find_tool("git"), "git not found!")