Files
zenbones-theme/lua/zenbones/shipwright/init.lua

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

76 lines
1.7 KiB
Lua
Raw Normal View History

2021-11-05 14:43:28 +08:00
local M = {}
local function make_env(colorscheme)
local specs = colorscheme.specs
vim.opt.background = colorscheme.background
package.loaded[specs] = nil
2021-11-06 11:36:59 +08:00
local builder = require "shipwright.builder"
local p = require(specs .. ".palette")[colorscheme.background]
local env = builder.make_env {
name = colorscheme.name,
specs_name = specs,
2021-11-06 11:36:59 +08:00
specs = require(specs),
p = p,
background = colorscheme.background,
2021-11-06 11:36:59 +08:00
term = require("zenbones.term").colors_map(p),
transform = require "zenbones.shipwright.transform",
}
2021-11-05 14:43:28 +08:00
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),
2021-11-05 14:43:28 +08:00
make_env {
name = config.name,
specs = config.name,
background = config.background,
2021-11-05 14:43:28 +08:00
}
),
}
end
M.run = function()
2021-11-06 11:44:23 +08:00
local runner_files = { "vim", "iterm", "alacritty", "kitty", "wezterm", "tmux", "lualine", "lightline" }
2021-11-07 08:51:24 +08:00
local colorschemes = vim.fn.json_decode(vim.fn.readfile "colorschemes.json")
for _, colorscheme in ipairs(colorschemes) do
for _, file in ipairs(runner_files) do
2021-11-06 12:13:13 +08:00
if not vim.tbl_contains(colorscheme.exclude or {}, file) then
colorscheme.file = file
for _, runner in ipairs(make_runners(colorscheme)) do
assert(pcall(runner))
end
end
end
2021-11-05 14:43:28 +08:00
end
end
return M