Files
zenbones-theme/lua/zenbones/shipwright/init.lua
Michael Chris Lopez 4674c87cf8 use make_env merge
2021-11-06 11:36:59 +08:00

82 lines
1.8 KiB
Lua

local M = {}
local function make_env(colorscheme)
local specs = colorscheme.specs
vim.opt.background = colorscheme.background
package.loaded[specs] = nil
local builder = require "shipwright.builder"
local p = require(specs .. ".palette")[colorscheme.background]
local env = builder.make_env {
name = colorscheme.name,
specs = require(specs),
p = p,
term = require("zenbones.term").colors_map(p),
transform = require "zenbones.shipwright.transform",
}
return env
end
local function make_build_fn(file)
return loadfile(string.format("lua/zenbones/shipwright/runners/%s.lua", file))
end
local function make_runners(config)
if not config.background then
return {
setfenv(
make_build_fn(config.file),
make_env {
name = config.name .. "_light",
specs = config.name,
background = "light",
}
),
setfenv(
make_build_fn(config.file),
make_env {
name = config.name .. "_dark",
specs = config.name,
background = "dark",
}
),
}
end
return {
setfenv(
make_build_fn(config.file),
make_env {
name = config.name,
specs = config.name,
background = config.background,
}
),
}
end
M.run = function()
local runner_files = { "vim", "alacritty", "kitty", "wezterm", "tmux", "lualine", "lightline" }
local colorschemes = {
{ name = "zenbones" },
{ name = "neobones" },
{ name = "vimbones", background = "light" },
{ name = "forestbones" },
{ name = "nordbones", background = "dark" },
{ name = "rosebones" },
{ name = "tokyobones" },
{ name = "zenburned", background = "dark" },
{ name = "zenwritten" },
}
for _, colorscheme in ipairs(colorschemes) do
for _, file in ipairs(runner_files) do
colorscheme.file = file
for _, runner in ipairs(make_runners(colorscheme)) do
assert(pcall(runner))
end
end
end
end
return M