fix: ensure that dir exists before creating files
This commit is contained in:
parent
b2ecb15d7f
commit
9a9868c991
1 changed files with 21 additions and 3 deletions
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue