summaryrefslogtreecommitdiff
path: root/lua/lvim/utils
diff options
context:
space:
mode:
Diffstat (limited to 'lua/lvim/utils')
-rw-r--r--lua/lvim/utils/git.lua12
-rw-r--r--lua/lvim/utils/hooks.lua17
2 files changed, 28 insertions, 1 deletions
diff --git a/lua/lvim/utils/git.lua b/lua/lvim/utils/git.lua
index 9848835e..f38a727f 100644
--- a/lua/lvim/utils/git.lua
+++ b/lua/lvim/utils/git.lua
@@ -72,6 +72,8 @@ function M.update_base_lvim()
Log:error "Update failed! Please pull the changes manually instead."
return
end
+
+ return true
end
---Switch Lunarvim to the specified development branch
@@ -80,11 +82,19 @@ function M.switch_lvim_branch(branch)
if not safe_deep_fetch() then
return
end
- local ret = git_cmd { args = { "switch", branch } }
+ local args = { "switch", branch }
+
+ if branch:match "^[0-9]" then
+ -- avoids producing an error for tags
+ vim.list_extend(args, { "--detach" })
+ end
+
+ local ret = git_cmd { args = args }
if ret ~= 0 then
Log:error "Unable to switch branches! Check the log for further information"
return
end
+ return true
end
---Get the current Lunarvim development branch
diff --git a/lua/lvim/utils/hooks.lua b/lua/lvim/utils/hooks.lua
index 932f9c3d..a6b63c96 100644
--- a/lua/lvim/utils/hooks.lua
+++ b/lua/lvim/utils/hooks.lua
@@ -51,6 +51,23 @@ end
function M.run_post_update()
Log:debug "Starting post-update hook"
+
+ if vim.fn.has "nvim-0.7" ~= 1 then
+ local compat_tag = "1.1.3"
+ vim.notify(
+ "Please upgrade your Neovim base installation. Newer version of Lunarvim requires v0.7+",
+ vim.log.levels.WARN
+ )
+ vim.wait(1000, function()
+ return false
+ end)
+ local ret = require_clean("lvim.utils.git").switch_lvim_branch(compat_tag)
+ if ret then
+ vim.notify("Reverted to the last known compatibile version: " .. compat_tag, vim.log.levels.WARN)
+ end
+ return
+ end
+
M.reset_cache()
Log:debug "Syncing core plugins"