feat: config option for trashing deleted files (#99)
This commit is contained in:
parent
339ade9dc3
commit
496d60fcff
3 changed files with 53 additions and 1 deletions
37
lua/oil/adapters/files/trash.lua
Normal file
37
lua/oil/adapters/files/trash.lua
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
local M = {}
|
||||
|
||||
M.recursive_delete = function(path, cb)
|
||||
local stdout = {}
|
||||
local stderr = {}
|
||||
local jid = vim.fn.jobstart({ "trash-put", path }, {
|
||||
stdout_buffered = true,
|
||||
stderr_buffered = true,
|
||||
on_stdout = function(j, output)
|
||||
stdout = output
|
||||
end,
|
||||
on_stderr = function(j, output)
|
||||
stderr = output
|
||||
end,
|
||||
on_exit = function(j, exit_code)
|
||||
if exit_code == 0 then
|
||||
cb()
|
||||
else
|
||||
cb(
|
||||
string.format(
|
||||
"Error moving '%s' to trash:\n stdout: %s\n stderr: %s",
|
||||
path,
|
||||
table.concat(stdout, "\n "),
|
||||
table.concat(stderr, "\n ")
|
||||
)
|
||||
)
|
||||
end
|
||||
end,
|
||||
})
|
||||
if jid == 0 then
|
||||
cb(string.format("Passed invalid argument '%s' to 'trash-put'", path))
|
||||
elseif jid == -1 then
|
||||
cb("'trash-put' is not executable")
|
||||
end
|
||||
end
|
||||
|
||||
return M
|
||||
Loading…
Add table
Add a link
Reference in a new issue