Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
95 lines
2.4 KiB
Lua
95 lines
2.4 KiB
Lua
local Path = require("plenary.path")
|
|
|
|
local fs = {}
|
|
|
|
function fs.create_temp_dir()
|
|
-- Resolve for two reasons.
|
|
-- 1. Follow any symlinks which make comparing paths fail. (on macOS, TMPDIR can be under /var which is symlinked to
|
|
-- /private/var)
|
|
-- 2. Remove any double separators (on macOS TMPDIR can end in a trailing / which absolute doesn't remove, this should
|
|
-- be coverted by https://github.com/nvim-lua/plenary.nvim/issues/330).
|
|
local temp_dir = vim.fn.resolve(
|
|
Path:new(
|
|
vim.fn.fnamemodify(vim.fn.tempname(), ":h"),
|
|
string.format("neo-tree-test-%s", vim.fn.rand())
|
|
):absolute()
|
|
)
|
|
vim.fn.mkdir(temp_dir, "p")
|
|
return temp_dir
|
|
end
|
|
|
|
function fs.create_dir(path)
|
|
local abspath = Path:new(path):absolute()
|
|
vim.fn.mkdir(abspath, "p")
|
|
end
|
|
|
|
function fs.remove_dir(dir, recursive)
|
|
if vim.fn.isdirectory(dir) == 1 then
|
|
return vim.fn.delete(dir, recursive and "rf" or "d") == 0
|
|
end
|
|
return false
|
|
end
|
|
|
|
function fs.write_file(path, content)
|
|
local abspath = Path:new(path):absolute()
|
|
fs.create_dir(vim.fn.fnamemodify(abspath, ":h"))
|
|
vim.fn.writefile(content or {}, abspath)
|
|
end
|
|
|
|
function fs.create_fs_tree(fs_tree)
|
|
local function create_items(items, basedir, relative_root_path)
|
|
relative_root_path = relative_root_path or "."
|
|
|
|
for _, item in ipairs(items) do
|
|
local relative_path = relative_root_path .. "/" .. item.name
|
|
|
|
-- create lookups
|
|
fs_tree.lookup[relative_path] = item
|
|
if item.id then
|
|
fs_tree.lookup[item.id] = item
|
|
end
|
|
|
|
-- create actual files and directories
|
|
if item.type == "dir" then
|
|
item.abspath = Path:new(basedir, item.name):absolute()
|
|
fs.create_dir(item.abspath)
|
|
if item.items then
|
|
create_items(item.items, item.abspath, relative_path)
|
|
end
|
|
elseif item.type == "file" then
|
|
item.abspath = Path:new(basedir, item.name):absolute()
|
|
fs.write_file(item.abspath)
|
|
end
|
|
end
|
|
end
|
|
|
|
create_items(fs_tree.items, fs_tree.abspath)
|
|
|
|
return fs_tree
|
|
end
|
|
|
|
function fs.init_test(fs_tree)
|
|
fs_tree.lookup = {}
|
|
if not fs_tree.abspath then
|
|
fs_tree.abspath = fs.create_temp_dir()
|
|
end
|
|
|
|
local function setup()
|
|
fs.remove_dir(fs_tree.abspath, true)
|
|
fs.create_fs_tree(fs_tree)
|
|
vim.cmd("tcd " .. fs_tree.abspath)
|
|
end
|
|
|
|
local function teardown()
|
|
fs.remove_dir(fs_tree.abspath, true)
|
|
end
|
|
|
|
return {
|
|
fs_tree = fs_tree,
|
|
setup = setup,
|
|
teardown = teardown,
|
|
}
|
|
end
|
|
|
|
return fs
|