Adds git support for optolith

This commit is contained in:
Michel 2025-01-03 14:19:18 +01:00
parent 2ea0877394
commit 576eba8e4e
5 changed files with 82 additions and 47 deletions

View file

@ -1,3 +1,5 @@
local git = require("functions.git")
-- Autocmds are automatically loaded on the VeryLazy event
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
-- Add any additional autocmds here
@ -5,59 +7,18 @@
vim.api.nvim_create_autocmd("BufWritePost", {
pattern = { "*.md" },
callback = function(args)
local function get_file_name(file)
local file_name = file:match("[^/]*.md$")
return file_name:sub(0, #file_name - 3):gsub(" ", "_")
end
local commitMessage = get_file_name(args.file) .. "-" .. os.date("%m_%B_%Y")
os.execute('git add "' .. args.file .. '"')
local commitCommand = 'git commit -m "' .. commitMessage .. '" &> /dev/null'
local commitResult = os.execute(commitCommand)
print("Commiting... " .. commitMessage)
if commitResult == 256 then
print("Nothing to commit")
return
elseif commitResult == 0 then
print("Commit complete")
else
print("Unknown Error " .. commitResult)
print(commitCommand)
return
end
git.commitFile(args.file)
end,
})
vim.api.nvim_create_autocmd("VimLeavePre", {
callback = function()
print("Pushing changes...")
-- Push twice, in case the credentials expired. Ugly hack, but it works
local pushSuccess = os.execute("git push &> /dev/null")
if pushSuccess > 0 then
os.execute("git push &> /dev/null")
end
print("Done")
git.push()
end,
})
vim.api.nvim_create_autocmd("VimEnter", {
callback = function()
vim.defer_fn(function()
local command = "git pull --rebase --quiet --no-edit &> /dev/null"
local pullSuccess = os.execute(command)
if pullSuccess == 256 then
vim.notify("Conflicts found. Please resolve and continue rebase", "error", {
title = "Updating...",
})
return
end
vim.notify("Pull success", "info", {
title = "Updating...",
})
end, 100)
git.pull()
end,
})