mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-05-20 21:46:54 +02:00
91 lines
2.1 KiB
Lua
Executable File
91 lines
2.1 KiB
Lua
Executable File
#!/usr/bin/env lua
|
|
|
|
local arguments = {
|
|
install = true,
|
|
update = true,
|
|
clean = true,
|
|
doctor = true,
|
|
debug = true,
|
|
help = true,
|
|
modules = true,
|
|
}
|
|
|
|
local argument
|
|
|
|
if #arg == 0 then
|
|
argument = 'install'
|
|
else
|
|
if #arg > 1 and (arg[1] ~= 'debug' and arg[1] ~= 'doctor') then
|
|
error('passed multiple arguments.')
|
|
end
|
|
|
|
if not arguments[arg[1]] then
|
|
error('unknow argument ' .. arg[1])
|
|
end
|
|
argument = arg[1]
|
|
|
|
if arg[1] == 'debug' then
|
|
local modules = [[let g:disable_modules="]]
|
|
---@diagnostic disable-next-line: deprecated
|
|
for _, k in pairs({ table.unpack(arg, 2, #arg) } or {}) do
|
|
modules = modules .. ',' .. 'modules/' .. k .. '/plugins'
|
|
end
|
|
modules = modules .. '"'
|
|
os.execute("nvim --cmd '" .. modules .. "'")
|
|
return
|
|
end
|
|
end
|
|
|
|
local handle
|
|
handle = assert(io.popen([[nvim --clean --headless --cmd 'echo $VIMRUNTIME|q' 2>&1]], 'r'))
|
|
if not handle then
|
|
return
|
|
end
|
|
|
|
local rtp = handle:read('*a')
|
|
handle:close()
|
|
|
|
-- read config path
|
|
handle = assert(io.popen([[nvim --clean --headless --cmd 'echo stdpath("config")|q' 2>&1]], 'r'))
|
|
local config_path = handle:read('*a')
|
|
handle:close()
|
|
|
|
-- set the poackage path
|
|
package.path = package.path .. ';' .. rtp .. '/lua/vim/?.lua;' .. config_path .. '/lua/?.lua'
|
|
|
|
if argument == 'help' then
|
|
local helper = require('core.helper')
|
|
helper.green('Dope usage')
|
|
local usage = {
|
|
{ '\tinstall', ' install Plugins' },
|
|
{ '\tupdate ', ' update Plugins' },
|
|
{ '\tclean ', ' clean the directories' },
|
|
{ '\tdoctor ', ' check the plugins info' },
|
|
{ '\tmodules', ' Show all modules' },
|
|
{ '\tdebug ', ' dynamic disable modules for debug' },
|
|
{ '\thelp ', ' show the usage of bot' },
|
|
}
|
|
for _, msg in pairs(usage) do
|
|
helper.write('blue')(msg[1])
|
|
helper.write('white')(msg[2])
|
|
print()
|
|
end
|
|
os.exit()
|
|
end
|
|
|
|
-- read data path
|
|
handle = assert(io.popen([[nvim --clean --headless --cmd 'echo stdpath("data")|q' 2>&1]], 'r'))
|
|
local data_path = handle:read('*a')
|
|
handle:close()
|
|
|
|
local cli = require('core.cli')
|
|
|
|
cli.rtp = rtp
|
|
cli.config_path = config_path
|
|
cli.data_path = data_path
|
|
|
|
-- env init
|
|
cli:env_init()
|
|
|
|
cli:meta(argument)(table.unpack(arg, 2))
|