feat: include versioning

This commit is contained in:
Barrett Ruth 2025-09-13 00:39:53 -05:00
parent 6a7ade554e
commit f13a05c806
6 changed files with 60 additions and 29 deletions

36
lua/cp/version.lua Normal file
View file

@ -0,0 +1,36 @@
local M = {}
local function get_git_version()
local plugin_path = debug.getinfo(1, "S").source:sub(2)
local plugin_root = vim.fn.fnamemodify(plugin_path, ":h:h:h")
local result = vim.system({"git", "describe", "--tags", "--always", "--dirty"}, {
cwd = plugin_root,
text = true
}):wait()
if result.code == 0 then
return result.stdout:gsub("\n", "")
else
return "unknown"
end
end
local function parse_semver(version_string)
local semver = version_string:match("^v?(%d+%.%d+%.%d+)")
if semver then
local major, minor, patch = semver:match("(%d+)%.(%d+)%.(%d+)")
return {
full = semver,
major = tonumber(major),
minor = tonumber(minor),
patch = tonumber(patch)
}
end
return nil
end
M.version = get_git_version()
M.semver = parse_semver(M.version)
return M