From b8c7bd6dc2edc26949c14418193f9ddd5fa49c02 Mon Sep 17 00:00:00 2001 From: srdusr Date: Wed, 12 Apr 2023 20:04:40 +0200 Subject: Set bare dotfiles repository git environment variables dynamically --- lua/user/mods.lua | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'lua/user/mods.lua') diff --git a/lua/user/mods.lua b/lua/user/mods.lua index 8a1f3f3..704ffdf 100644 --- a/lua/user/mods.lua +++ b/lua/user/mods.lua @@ -161,6 +161,50 @@ end --]]) +-------------------------------------------------- + +-- Set bare dotfiles repository git environment variables dynamically + +-- Set git enviornment variables +--function M.Set_git_env_vars() +-- local git_dir_job = vim.fn.jobstart({ "git", "rev-parse", "--git-dir" }) +-- local command_status = vim.fn.jobwait({ git_dir_job })[1] +-- if command_status > 0 then +-- vim.env.GIT_DIR = vim.fn.expand("$HOME/.cfg") +-- vim.env.GIT_WORK_TREE = vim.fn.expand("~") +-- else +-- vim.env.GIT_DIR = nil +-- vim.env.GIT_WORK_TREE = nil +-- end +-- -- Launch terminal emulator with Git environment variables set +-- --require("toggleterm").exec(string.format([[%s %s]], os.getenv("SHELL"), "-i")) +--end + +------ + +local prev_cwd = "" + +function M.Set_git_env_vars() + local cwd = vim.fn.getcwd() + if cwd ~= prev_cwd then + prev_cwd = cwd + local git_dir_job = vim.fn.jobstart({ "git", "rev-parse", "--git-dir" }) + local command_status = vim.fn.jobwait({ git_dir_job })[1] + if command_status > 0 then + vim.env.GIT_DIR = vim.fn.expand("$HOME/.cfg") + vim.env.GIT_WORK_TREE = vim.fn.expand("~") + else + vim.env.GIT_DIR = nil + vim.env.GIT_WORK_TREE = nil + end + end +end +vim.cmd [[augroup my_git_env_vars]] +vim.cmd [[ autocmd!]] +vim.cmd [[ autocmd BufEnter * lua require('user.mods').Set_git_env_vars()]] +vim.cmd [[ autocmd VimEnter * lua require('user.mods').Set_git_env_vars()]] +vim.cmd [[augroup END]] + -------------------------------------------------- return M -- cgit v1.2.3