fix: ensure that dir exists before creating files

This commit is contained in:
2024-12-12 22:29:03 +01:00
parent b2ecb15d7f
commit 9a9868c991

View File

@@ -1,17 +1,35 @@
local M = {} local M = {}
local uv = vim.loop
local function ensure_dir(path)
local st = uv.fs_stat(path)
if st and st.type == 'directory' then
return true
end
local parent = path:match("(.*)/")
if parent and parent ~= "" then
ensure_dir(parent)
end
uv.fs_mkdir(path, 511)
return true
end
function M.get_clipboard_content() function M.get_clipboard_content()
return vim.fn.getreg('+') return vim.fn.getreg('+')
end end
function M.write_file(filepath, content) function M.write_file(filepath, content)
local fd = vim.loop.fs_open(filepath, "w", 438) local dir = filepath:match("(.*)/")
if dir and dir ~= "" then
ensure_dir(dir)
end
local fd = uv.fs_open(filepath, "w", 438)
if not fd then if not fd then
vim.api.nvim_err_writeln("Could not open file for writing: " .. filepath) vim.api.nvim_err_writeln("Could not open file for writing: " .. filepath)
return return
end end
vim.loop.fs_write(fd, content, -1) uv.fs_write(fd, content, -1)
vim.loop.fs_close(fd) uv.fs_close(fd)
end end
function M.finish() function M.finish()