conditional light/dark background builder
This commit is contained in:
@@ -4,28 +4,66 @@ local function make_env(colorscheme)
|
|||||||
local builder = require "shipwright.builder"
|
local builder = require "shipwright.builder"
|
||||||
local env = builder.make_env()
|
local env = builder.make_env()
|
||||||
|
|
||||||
local name = colorscheme.name
|
local specs = colorscheme.specs
|
||||||
env.name = name
|
env.name = colorscheme.name
|
||||||
|
|
||||||
vim.opt.background = "light"
|
vim.opt.background = colorscheme.background
|
||||||
package.loaded[name] = nil
|
package.loaded[specs] = nil
|
||||||
env.specs = require(name)
|
env.specs = require(specs)
|
||||||
env.p = require(name .. ".palette").light
|
env.p = require(specs .. ".palette")[colorscheme.background]
|
||||||
env.term = require("zenbones.term").colors_map(env.p)
|
env.term = require("zenbones.term").colors_map(env.p)
|
||||||
env.transform = require "zenbones.shipwright.transform"
|
env.transform = require "zenbones.shipwright.transform"
|
||||||
return env
|
return env
|
||||||
end
|
end
|
||||||
|
|
||||||
M.run = function()
|
local function make_build_fn(file)
|
||||||
local runners = { "alacritty", "kitty" }
|
return loadfile(string.format("lua/zenbones/shipwright/runners/%s.lua", file))
|
||||||
for _, runner in ipairs(runners) do
|
end
|
||||||
local build_fn = loadfile(string.format("lua/zenbones/shipwright/runners/%s.lua", runner))
|
|
||||||
assert(pcall(setfenv(
|
local function make_runners(config)
|
||||||
build_fn,
|
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 {
|
make_env {
|
||||||
name = "zenbones",
|
name = config.name,
|
||||||
|
specs = config.name,
|
||||||
|
background = config.background,
|
||||||
}
|
}
|
||||||
)))
|
),
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
M.run = function()
|
||||||
|
local runner_files = { "alacritty", "kitty" }
|
||||||
|
local colorschemes = { { name = "zenbones" }, { name = "neobones" } }
|
||||||
|
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
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user