37 lines
982 B
Lua
37 lines
982 B
Lua
local M = {}
|
|
|
|
function M.root(root)
|
|
local f = debug.getinfo(1, 'S').source:sub(2)
|
|
return vim.fn.fnamemodify(f, ':p:h:h') .. '/' .. (root or '')
|
|
end
|
|
|
|
---@param plugin string
|
|
function M.load(plugin)
|
|
local name = plugin:match '.*/(.*)'
|
|
local package_root = M.root '.tests/site/pack/deps/start/'
|
|
if not vim.loop.fs_stat(package_root .. name) then
|
|
print('Installing ' .. plugin)
|
|
vim.fn.mkdir(package_root, 'p')
|
|
vim.fn.system {
|
|
'git',
|
|
'clone',
|
|
'--depth=1',
|
|
'https://github.com/' .. plugin .. '.git',
|
|
package_root .. '/' .. name,
|
|
}
|
|
end
|
|
end
|
|
|
|
function M.setup()
|
|
vim.cmd [[set runtimepath=$VIMRUNTIME]]
|
|
vim.opt.runtimepath:append(M.root())
|
|
vim.opt.packpath = { M.root '.tests/site' }
|
|
M.load 'nvim-lua/plenary.nvim'
|
|
vim.env.XDG_CONFIG_HOME = M.root '.tests/config'
|
|
vim.env.XDG_DATA_HOME = M.root '.tests/data'
|
|
vim.env.XDG_STATE_HOME = M.root '.tests/state'
|
|
vim.env.XDG_CACHE_HOME = M.root '.tests/cache'
|
|
end
|
|
|
|
M.setup()
|