summaryrefslogtreecommitdiff
path: root/lua/lvim/utils
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2021-11-27 15:22:43 +0100
committerGitHub <[email protected]>2021-11-27 15:22:43 +0100
commit24be0ef1ef36b8cc725655e920104e9676b72f25 (patch)
tree4b36a186c893844d6db4b99c5ed553179858f3d0 /lua/lvim/utils
parent044b53a6fed7ed2c477870883857a9742a2e1b98 (diff)
chore: bump core-plugins version (#1989)
Diffstat (limited to 'lua/lvim/utils')
-rw-r--r--lua/lvim/utils/init.lua32
1 files changed, 30 insertions, 2 deletions
diff --git a/lua/lvim/utils/init.lua b/lua/lvim/utils/init.lua
index bf04e149..d7affd4b 100644
--- a/lua/lvim/utils/init.lua
+++ b/lua/lvim/utils/init.lua
@@ -174,6 +174,34 @@ function utils.log_contains(query)
return false
end
-return utils
+function utils.generate_plugins_sha(output)
+ local list = {}
+ output = output or "commits.lua"
+
+ local function git_cmd(args)
+ local Job = require "plenary.job"
+ local stderr = {}
+ local stdout, ret = Job
+ :new({
+ command = "git",
+ args = args,
+ on_stderr = function(_, data)
+ table.insert(stderr, data)
+ end,
+ })
+ :sync()
+ return ret, stdout
+ end
--- TODO: find a new home for these autocommands
+ for name, plugin in pairs(_G.packer_plugins) do
+ local retval, latest_sha = git_cmd { "-C", plugin.path, "rev-parse", "@{-1}" }
+ if retval == 0 then
+ -- replace dashes, remove postfixes and use lowercase
+ local normalize_name = (name:gsub("-", "_"):gsub("%.%S+", "")):lower()
+ list[normalize_name] = latest_sha[1]
+ end
+ end
+ utils.write_file(output, "local commits = " .. vim.inspect(list), "w")
+end
+
+return utils