remove old build system

This commit is contained in:
Michael Chris Lopez
2021-11-06 11:49:28 +08:00
parent ab274926e0
commit 8185f46dcd
9 changed files with 0 additions and 688 deletions

View File

@@ -1,261 +0,0 @@
local util = require "zenbones.util"
local function write_template(path, template, values)
print("[write template] " .. path)
local content = util.interp(template, values)
local file = io.open(path, "w")
file:write(content)
file:close()
end
local function build(name, specs, palette, opt)
local exclude = opt.exclude or {}
local template_opt = opt.template_opt or {}
local template_keys = { "vim", "iterm", "kitty", "alacritty", "wezterm", "lualine", "lightline", "tmux" }
for _, key in ipairs(template_keys) do
if not vim.tbl_contains(exclude, key) then
local template = require("zenbones.template." .. key)
write_template(unpack(template(name, specs, palette, template_opt[key] or {})))
end
end
end
local config_set = {
{
name = "zenbones_light",
specs = "zenbones",
palette = require("zenbones.palette").light,
setup = function()
vim.opt.background = "light"
end,
},
{
name = "zenbones_dark",
specs = "zenbones",
palette = require("zenbones.palette").dark,
setup = function()
vim.opt.background = "dark"
end,
},
{
name = "zenbones_bright",
specs = "zenbones",
palette = require("zenbones.palette").light,
setup = function()
vim.g.zenbones_lightness = "bright"
end,
cleanup = function()
vim.api.nvim_del_var "zenbones_lightness"
end,
opt = {
exclude = { "vim", "lightline", "lualine" },
},
},
{
name = "zenbones_dim",
specs = "zenbones",
palette = require("zenbones.palette").light,
setup = function()
vim.g.zenbones_lightness = "dim"
end,
cleanup = function()
vim.api.nvim_del_var "zenbones_lightness"
end,
opt = {
exclude = { "vim", "lightline", "lualine" },
},
},
-- {
-- name = "zenflesh_stark",
-- specs = "zenflesh",
-- palette = require "zenflesh.palette",
-- setup = function()
-- vim.g.zenflesh_darkness = "stark"
-- end,
-- cleanup = function()
-- vim.api.nvim_del_var "zenflesh_darkness"
-- end,
-- opt = {
-- exclude = { "vim", "lightline", "lualine" },
-- },
-- },
--
-- {
-- name = "zenflesh_warm",
-- specs = "zenflesh",
-- palette = require "zenflesh.palette",
-- setup = function()
-- vim.g.zenflesh_darkness = "warm"
-- end,
-- cleanup = function()
-- vim.api.nvim_del_var "zenflesh_darkness"
-- end,
-- opt = {
-- exclude = { "vim", "lightline", "lualine" },
-- },
-- },
{
name = "neobones_light",
specs = "neobones",
palette = require("neobones.palette").light,
setup = function()
vim.opt.background = "light"
end,
opt = {
exclude = { "vim" },
},
},
{
name = "neobones_dark",
specs = "neobones",
palette = require("neobones.palette").dark,
setup = function()
vim.opt.background = "dark"
end,
opt = {
exclude = { "vim" },
},
},
{
name = "zenwritten_light",
specs = "zenwritten",
palette = require("zenwritten.palette").light,
setup = function()
vim.opt.background = "light"
end,
opt = {
exclude = { "vim" },
},
},
{
name = "zenwritten_dark",
specs = "zenwritten",
palette = require("zenwritten.palette").dark,
setup = function()
vim.opt.background = "dark"
end,
opt = {
exclude = { "vim" },
},
},
{
name = "rosebones_light",
specs = "rosebones",
palette = require("rosebones.palette").light,
setup = function()
vim.opt.background = "light"
end,
opt = {
exclude = { "vim", "alacritty", "iterm", "kitty", "tmux", "wezterm" },
},
},
{
name = "rosebones_dark",
specs = "rosebones",
palette = require("rosebones.palette").dark,
setup = function()
vim.opt.background = "dark"
end,
opt = {
exclude = { "vim", "alacritty", "iterm", "kitty", "tmux", "wezterm" },
},
},
{
name = "forestbones_light",
specs = "forestbones",
palette = require("forestbones.palette").light,
setup = function()
vim.opt.background = "light"
end,
opt = {
exclude = { "vim", "alacritty", "iterm", "kitty", "tmux", "wezterm" },
},
},
{
name = "forestbones_dark",
specs = "forestbones",
palette = require("forestbones.palette").dark,
setup = function()
vim.opt.background = "dark"
end,
opt = {
exclude = { "vim", "alacritty", "iterm", "kitty", "tmux", "wezterm" },
},
},
{
name = "tokyobones_light",
specs = "tokyobones",
palette = require("tokyobones.palette").light,
setup = function()
vim.opt.background = "light"
end,
opt = {
exclude = { "vim", "alacritty", "iterm", "kitty", "tmux", "wezterm" },
},
},
{
name = "tokyobones_dark",
specs = "tokyobones",
palette = require("tokyobones.palette").dark,
setup = function()
vim.opt.background = "dark"
end,
opt = {
exclude = { "vim", "alacritty", "iterm", "kitty", "tmux", "wezterm" },
},
},
{
name = "nordbones",
palette = require("nordbones.palette").dark,
opt = {
exclude = { "alacritty", "iterm", "kitty", "tmux", "wezterm" },
},
},
{
name = "vimbones",
palette = require "vimbones.palette",
opt = {
template_opt = {
vim = { bg = "light" },
},
},
},
}
local function build_from(config)
if config.setup then
config.setup()
end
local specs = config.specs or config.name
package.loaded[specs] = nil
build(config.name, require(specs), config.palette, config.opt or {})
if config.cleanup then
config.cleanup()
end
end
local M = {}
function M.run()
for _i, config in ipairs(config_set) do
build_from(config)
end
end
return M

View File

@@ -1,42 +0,0 @@
local template = [[# This file is auto-generated from lua/zenbones/template/alacritty.lua
# ${name} alacritty colors
colors:
# Default colors
primary:
background: '${bg}'
foreground: '${fg}'
# Normal colors
normal:
black: '${color0}'
red: '${color1}'
green: '${color2}'
yellow: '${color3}'
blue: '${color4}'
magenta: '${color5}'
cyan: '${color6}'
white: '${color7}'
# Bright colors
bright:
black: '${color8}'
red: '${color9}'
green: '${color10}'
yellow: '${color11}'
blue: '${color12}'
magenta: '${color13}'
cyan: '${color14}'
white: '${color15}'
]]
return function(name, specs, p)
local term = require("zenbones.term").colors_map(p)
local values = {
name = name,
bg = specs.Normal.bg.hex,
fg = specs.Normal.fg.hex,
}
for i, v in ipairs(term) do
values["color" .. (i - 1)] = v.hex
end
return { string.format("extras/alacritty/%s.yml", name), template, values }
end

View File

@@ -1,89 +0,0 @@
local util = require "zenbones.util"
local key_template = [[
<key>${k} Color</key>
]]
local color_template = [[
<dict>
<key>Alpha Component</key>
<real>1</real>
<key>Blue Component</key>
<real>${b}</real>
<key>Color Space</key>
<string>sRGB</string>
<key>Green Component</key>
<real>${g}</real>
<key>Red Component</key>
<real>${r}</real>
</dict>]]
local start_template = [[<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
]]
local end_template = [[
</dict>
</plist>]]
local function hex_to_rgb(hex)
local _, r, g, b = hex:match "(.)(..)(..)(..)"
r, g, b =
string.format("%0.16f", (tonumber(r, 16) / 255)),
string.format("%0.16f", (tonumber(g, 16) / 255)),
string.format("%0.16f", (tonumber(b, 16) / 255))
return { r = r, g = g, b = b }
end
local function key_to_xml(key, color)
local xml = util.interp(key_template, { k = key })
local rgb = hex_to_rgb(color.hex)
xml = xml .. util.interp(color_template, rgb)
return xml
end
return function(name, specs, p)
local term = require("zenbones.term").colors_map(p)
local colors = {
["Ansi 0"] = term[1],
["Ansi 1"] = term[2],
["Ansi 2"] = term[3],
["Ansi 3"] = term[4],
["Ansi 4"] = term[5],
["Ansi 5"] = term[6],
["Ansi 6"] = term[7],
["Ansi 7"] = term[8],
["Ansi 8"] = term[9],
["Ansi 9"] = term[10],
["Ansi 10"] = term[11],
["Ansi 11"] = term[12],
["Ansi 12"] = term[13],
["Ansi 13"] = term[14],
["Ansi 14"] = term[15],
["Ansi 15"] = term[16],
Foreground = specs.Normal.fg,
Background = specs.Normal.bg,
Bold = term[9],
Cursor = specs.Cursor.bg,
["Cursor Text"] = specs.Cursor.fg,
["Cursor Guide"] = specs.CursorLine.bg,
Link = term[13],
Selection = specs.Visual.bg,
["Selected Text"] = specs.Normal.fg,
Badge = specs.Comment.fg,
Tab = specs.Normal.bg,
}
local template = start_template
local xml_compiled = {}
for k, c in pairs(colors) do
table.insert(xml_compiled, key_to_xml(k, c))
end
template = template .. table.concat(vim.fn.sort(xml_compiled), "\n")
template = template .. end_template
return { string.format("extras/iterm/%s.itermcolors", name), template, {} }
end

View File

@@ -1,65 +0,0 @@
local template = [[# This file is auto-generated from lua/zenbones/template/kitty.lua
# vim:ft=kitty
## name: ${name}
## license: MIT
## author: Michael Chris Lopez
## upstream: https://github.com/mcchrish/zenbones.nvim/raw/main/extras/kitty/${name}.conf
background ${background}
foreground ${foreground}
selection_background ${selection_background}
selection_foreground ${selection_foreground}
url_color ${url_color}
cursor ${cursor}
# Tabs
active_tab_background ${active_tab_background}
active_tab_foreground ${active_tab_foreground}
inactive_tab_background ${inactive_tab_background}
inactive_tab_foreground ${inactive_tab_foreground}
#tab_bar_background ${tab_bar_background}
# normal
color0 ${color0}
color1 ${color1}
color2 ${color2}
color3 ${color3}
color4 ${color4}
color5 ${color5}
color6 ${color6}
color7 ${color7}
# bright
color8 ${color8}
color9 ${color9}
color10 ${color10}
color11 ${color11}
color12 ${color12}
color13 ${color13}
color14 ${color14}
color15 ${color15}
]]
return function(name, specs, p)
local term = require("zenbones.term").colors_map(p)
local bg = specs.Normal.bg.hex
local fg = specs.Normal.fg.hex
local values = {
name = name,
background = bg,
foreground = fg,
selection_background = specs.Visual.bg.hex,
selection_foreground = fg,
url_color = term[13].hex,
cursor = fg,
active_tab_background = specs.Search.bg.hex,
active_tab_foreground = fg,
inactive_tab_background = specs.StatusLine.bg.hex,
inactive_tab_foreground = fg,
}
for i, v in ipairs(term) do
values["color" .. (i - 1)] = v.hex
end
return { string.format("extras/kitty/%s.conf", name), template, values }
end

View File

@@ -1,53 +0,0 @@
local template = [[" This file is auto-generated from lua/zenbones/template/lightline.lua
let s:p = {'normal': {}, 'inactive': {}, 'insert': {}, 'replace': {}, 'visual': {}, 'tabline': {}}
let s:p.normal.left = [ [ "${common_fg}", "${normal_a_bg}", "bold" ], [ "${common_fg}", "${normal_b_bg}" ] ]
let s:p.normal.middle = [ [ "${normal_c_fg}", "${normal_c_bg}" ] ]
let s:p.normal.right = [ [ "${common_fg}", "${normal_b_bg}" ], [ "${common_fg}", "${normal_b_bg}" ] ]
let s:p.normal.warning = [ [ "${warning_fg}", "${warning_bg}" ] ]
let s:p.normal.error = [ [ "${error_fg}", "${error_bg}" ] ]
let s:p.inactive.left = [ [ "${inactive_fg}", "${inactive_bg}" ], [ "${inactive_fg}", "${inactive_bg}" ] ]
let s:p.inactive.middle = [ [ "${inactive_fg}", "${inactive_bg}" ] ]
let s:p.inactive.right = [ [ "${inactive_fg}", "${inactive_bg}" ] ]
let s:p.insert.left = [ [ "${common_fg}", "${insert_a_bg}", "bold" ], [ "${common_fg}", "${normal_b_bg}" ] ]
let s:p.replace.left = [ [ "${common_fg}", "${replace_a_bg}", "bold" ], [ "${common_fg}", "${normal_b_bg}" ] ]
let s:p.visual.left = [ [ "${common_fg}", "${visual_a_bg}", "bold" ], [ "${common_fg}", "${normal_b_bg}" ] ]
let s:p.tabline.left = [ [ "${tabline_left_fg}", "${tabline_left_bg}", "italic" ] ]
let s:p.tabline.middle = [ [ "${inactive_fg}", "${inactive_bg}" ] ]
let s:p.tabline.right = [ [ "${tabline_right_fg}", "${tabline_right_bg}" ] ]
let s:p.tabline.tabsel = [ [ "${tabsel_fg}", "${tabsel_bg}", "bold" ] ]
let g:lightline#colorscheme#zenbones#palette = lightline#colorscheme#fill(s:p)
]]
return function(name, specs)
return {
string.format("autoload/lightline/colorscheme/%s.vim", name),
template,
{
common_fg = specs.Folded.fg.hex,
inactive_bg = specs.StatusLineNC.bg.hex,
inactive_fg = specs.StatusLineNC.fg.hex,
normal_a_bg = specs.PmenuSbar.bg.hex,
normal_b_bg = specs.PmenuSel.bg.hex,
normal_c_bg = specs.StatusLine.bg.hex,
normal_c_fg = specs.StatusLine.fg.hex,
insert_a_bg = specs.DiffText.bg.hex,
visual_a_bg = specs.Visual.bg.hex,
replace_a_bg = specs.DiffDelete.bg.hex,
tabline_left_bg = specs.PmenuSel.bg.hex,
tabline_left_fg = specs.Normal.fg.hex,
tabline_right_bg = specs.PmenuSel.bg.hex,
tabline_right_fg = specs.Normal.fg.hex,
tabsel_bg = specs.Normal.bg.hex,
tabsel_fg = specs.Normal.fg.hex,
warning_bg = specs.DiagnosticVirtualTextWarn.bg.hex,
warning_fg = specs.DiagnosticVirtualTextWarn.fg.hex,
error_bg = specs.DiagnosticVirtualTextError.bg.hex,
error_fg = specs.DiagnosticVirtualTextError.fg.hex,
},
}
end

View File

@@ -1,55 +0,0 @@
local template = [[-- This file is auto-generated from lua/zenbones/template/lualine.lua
local common_fg = "${common_fg}"
local inactive_bg = "${inactive_bg}"
local inactive_fg = "${inactive_fg}"
return {
normal = {
a = { bg = "${normal_a_bg}", fg = common_fg, gui = "bold" },
b = { bg = "${normal_b_bg}", fg = common_fg },
c = { bg = "${normal_c_bg}", fg = "${normal_c_fg}" },
},
insert = {
a = { bg = "${insert_a_bg}", fg = common_fg, gui = "bold" },
},
command = {
a = { bg = "${command_a_bg}", fg = common_fg, gui = "bold" },
},
visual = {
a = { bg = "${visual_a_bg}", fg = common_fg, gui = "bold" },
},
replace = {
a = { bg = "${replace_a_bg}", fg = common_fg, gui = "bold" },
},
inactive = {
a = { bg = inactive_bg, fg = inactive_fg, gui = "bold" },
b = { bg = inactive_bg, fg = inactive_fg },
c = { bg = inactive_bg, fg = inactive_fg },
},
}
]]
return function(name, specs)
return {
string.format("lua/lualine/themes/%s.lua", name),
template,
{
common_fg = specs.Folded.fg.hex,
inactive_bg = specs.StatusLineNC.bg.hex,
inactive_fg = specs.StatusLineNC.fg.hex,
normal_a_bg = specs.PmenuSbar.bg.hex,
normal_b_bg = specs.PmenuSel.bg.hex,
normal_c_bg = specs.StatusLine.bg.hex,
normal_c_fg = specs.StatusLine.fg.hex,
insert_a_bg = specs.DiffText.bg.hex,
command_a_bg = specs.Search.bg.hex,
visual_a_bg = specs.Visual.bg.hex,
replace_a_bg = specs.DiffDelete.bg.hex,
},
}
end

View File

@@ -1,31 +0,0 @@
local template = [[# This file is auto-generated from lua/zenbones/template/tmux.lua
set -g status-left ' #[fg=${color5},bold]#{s/root//:client_key_table} '
set -g status-right '#[fg=${color5},bold] [#S]#[fg=${color5},bold] [%d/%m] #[fg=${color5},bold][%I:%M%p] '
set -g status-style fg='${color5}',bg='${color7}'
set -g window-status-current-style fg='${color5}',bg='${color7}',bold
set -g pane-border-style fg='${color5}'
set -g pane-active-border-style fg='${color5}'
set -g message-style fg='${color0}',bg='${selection_background}'
set -g display-panes-active-colour '${color5}'
set -g display-panes-colour '${color5}'
set -g clock-mode-colour '${color5}'
set -g mode-style fg='${color0}',bg='${selection_background}'
]]
return function(name, specs, p)
local term = require("zenbones.term").colors_map(p)
local values = {
selection_background = specs.Visual.bg.hex,
}
for i, v in ipairs(term) do
values["color" .. (i - 1)] = v.hex
end
return { string.format("extras/tmux/%s.tmux", name), template, values }
end

View File

@@ -1,58 +0,0 @@
local template = [[" This file is auto-generated from lua/zenbones/template/vim.lua
function! ${name}#load()
${termcolors}
${vimcolors}
highlight! link StatusLineTerm StatusLine
highlight! link StatusLineTermNC StatusLineNC
if has('terminal')
let g:terminal_ansi_colors = [
\ g:terminal_color_0,
\ g:terminal_color_1,
\ g:terminal_color_2,
\ g:terminal_color_3,
\ g:terminal_color_4,
\ g:terminal_color_5,
\ g:terminal_color_6,
\ g:terminal_color_7,
\ g:terminal_color_8,
\ g:terminal_color_9,
\ g:terminal_color_10,
\ g:terminal_color_11,
\ g:terminal_color_12,
\ g:terminal_color_13,
\ g:terminal_color_14,
\ g:terminal_color_15
\ ]
endif
endfunction
]]
return function(name, specs, p)
local lush = require "lush"
local term = require("zenbones.term").colors_map(p)
local termcolors = ""
for i, v in ipairs(term) do
termcolors = termcolors .. string.format("let g:terminal_color_%s = '%s'\n", (i - 1), v.hex)
end
-- Compile lush table, concatenate to a single string, and remove blend property
local compiled = lush.compile(specs, {
exclude_keys = { "blend" },
copy_cterm_from_gui = true,
})
local vimcolors = table.concat(vim.fn.sort(compiled), "\n")
return {
string.format("autoload/%s.vim", name),
template,
{
name = name,
specs_path = name,
termcolors = termcolors,
vimcolors = vimcolors,
},
}
end

View File

@@ -1,34 +0,0 @@
local template = [[# This file is auto-generated from lua/zenbones/template/wezterm.lua
# ${name}
[colors]
foreground = "${fg}"
background = "${bg}"
cursor_bg = "${cursor_bg}"
cursor_border = "${cursor_border}"
cursor_fg = "${cursor_fg}"
selection_bg = "${selection_bg}"
selection_fg = "${selection_fg}"
ansi = ["${color0}", "${color1}", "${color2}", "${color3}", "${color4}", "${color5}", "${color6}", "${color7}"]
brights = ["${color8}", "${color9}", "${color10}", "${color11}", "${color12}", "${color13}", "${color14}", "${color15}"]
]]
return function(name, specs, p)
local term = require("zenbones.term").colors_map(p)
local values = {
name = name:sub(1, 1):upper() .. name:sub(2),
fg = specs.Normal.fg.hex,
bg = specs.Normal.bg.hex,
cursor_bg = specs.Cursor.bg.hex,
cursor_border = specs.Cursor.fg.hex,
cursor_fg = specs.Cursor.fg.hex,
selection_bg = specs.Visual.bg.hex,
selection_fg = specs.Normal.fg.hex,
}
for i, v in ipairs(term) do
values["color" .. (i - 1)] = v.hex
end
return { string.format("extras/wezterm/%s.toml", values.name), template, values }
end