1-- Automatically decrypt and encrypt Ansible Vault files
2local encrypted_buffers = {}
3vim.api.nvim_create_autocmd("BufWinEnter", {
4 pattern = "*",
5 -- pattern = "*.vault.*"
6 callback = function(_)
7 local first_line = vim.api.nvim_buf_get_lines(0, 0, -1, true)
8 if first_line[1]:find("$ANSIBLE_VAULT") then
9 encrypted_buffers[vim.api.nvim_get_current_buf()] = true
10 vim.api.nvim_command("silent%!ansible-vault decrypt --output -")
11 end
12 end,
13})
14vim.api.nvim_create_autocmd("BufWinLeave", {
15 pattern = "*",
16 -- pattern = "*.vault.*"
17 callback = function(_)
18 if encrypted_buffers[vim.api.nvim_get_current_buf()] then
19 encrypted_buffers[vim.api.nvim_get_current_buf()] = nil
20 vim.api.nvim_command("%!ansible-vault encrypt --output -")
21 end
22 end,
23})