xtablo-source/deprecated/cmd/buildstyles/main.go
Arthur Belleville 5d0c201e86
Some checks failed
backend-ci / Backend tests (pull_request) Failing after 53s
backend-ci / Backend tests (push) Failing after 1s
Some work
2026-05-23 17:26:01 +02:00

66 lines
1.9 KiB
Go

package main
import (
"bytes"
"flag"
"fmt"
"os"
"path/filepath"
)
var sourceOrder = []string{
filepath.Join("internal", "web", "ui", "base.css"),
filepath.Join("internal", "web", "ui", "catalog", "catalog.css"),
filepath.Join("internal", "web", "ui", "button.css"),
filepath.Join("internal", "web", "ui", "badge.css"),
filepath.Join("internal", "web", "ui", "icon-button.css"),
filepath.Join("internal", "web", "ui", "input.css"),
filepath.Join("internal", "web", "ui", "select.css"),
filepath.Join("internal", "web", "ui", "textarea.css"),
filepath.Join("internal", "web", "ui", "form-field.css"),
filepath.Join("internal", "web", "ui", "modal.css"),
filepath.Join("internal", "web", "ui", "table.css"),
filepath.Join("internal", "web", "ui", "empty-state.css"),
filepath.Join("internal", "web", "ui", "card.css"),
filepath.Join("internal", "web", "ui", "spacing.css"),
filepath.Join("internal", "web", "ui", "app.css"),
}
func main() {
output := flag.String("out", filepath.Join("static", "styles.css"), "output stylesheet path")
flag.Parse()
if err := generateStyles(sourceOrder, *output); err != nil {
fmt.Fprintf(os.Stderr, "build styles: %v\n", err)
os.Exit(1)
}
}
func generateStyles(sourcePaths []string, outputPath string) error {
var buf bytes.Buffer
buf.WriteString("/* Code generated by cmd/buildstyles; DO NOT EDIT. */\n\n")
for i, path := range sourcePaths {
body, err := os.ReadFile(path)
if err != nil {
return fmt.Errorf("read %s: %w", path, err)
}
buf.WriteString("/* Source: ")
buf.WriteString(filepath.ToSlash(path))
buf.WriteString(" */\n")
buf.Write(bytes.TrimSpace(body))
buf.WriteByte('\n')
if i < len(sourcePaths)-1 {
buf.WriteByte('\n')
}
}
if err := os.MkdirAll(filepath.Dir(outputPath), 0o755); err != nil {
return fmt.Errorf("mkdir output dir: %w", err)
}
if err := os.WriteFile(outputPath, buf.Bytes(), 0o644); err != nil {
return fmt.Errorf("write %s: %w", outputPath, err)
}
return nil
}