chore: simplify workflows and unify tool logging and mail presentation
Release / Validate Templates (push) Successful in 2m55s
Release / Package & Release (push) Skipped
Release / Remind to Update Release Documentation (push) Skipped

This commit is contained in:
KenanZhu committed 2026-10-10 14:54:40 +08:00
1 parent f4d96de79e
commit c93f2bf8b2
40 files changed
+523 -1515

No files matched your search

+4 -3
View File
@@ -5,6 +5,7 @@ import (
"encoding/base64"
"encoding/json"
"fmt"
"gitea-mail-templates/tools/logging"
"html/template"
"os"
"path/filepath"
@@ -259,15 +260,15 @@ func WriteRenderedJS(result *PreviewResult, output string) error {
}
func PrintDetailedSummary(result *PreviewResult, _ string, _ *config.TemplatesConfig) {
fmt.Printf("[PASS] %s: %d themes × %d mail types × %d languages\n", result.Upstream, len(result.Themes), len(result.Registry), len(result.Languages))
logging.Info("Preview", "%s: %d themes × %d mail types × %d languages", result.Upstream, len(result.Themes), len(result.Registry), len(result.Languages))
for _, lang := range result.Languages {
for _, warnings := range result.Warnings[lang] {
for _, warning := range warnings {
fmt.Println(warning)
logging.Warn("Upstream", "%s", strings.TrimPrefix(warning, "[UPSTREAM-WARN] "))
}
}
if keys := result.Fallback[lang]; len(keys) > 0 {
fmt.Printf("[FALLBACK] %s -> en-US: %s\n", lang, strings.Join(keys, ", "))
logging.Warn("Locale", "%s -> en-US: %s", lang, strings.Join(keys, ", "))
}
}
}
+12 -9
View File
@@ -3,6 +3,7 @@ package preview
import (
"encoding/json"
"fmt"
"gitea-mail-templates/tools/logging"
"net/http"
"os"
"path/filepath"
@@ -62,10 +63,10 @@ func (s *DevServer) Start() error {
mux.Handle("/", previewFS)
addr := fmt.Sprintf("127.0.0.1:%d", s.cfg.Port)
fmt.Printf("\033[32m[I]\033[0m [Server] Gitea Mail Templates — Dev Server\n")
fmt.Printf("\033[32m[I]\033[0m [Server] http://%s\n", addr)
fmt.Printf("\033[32m[I]\033[0m [Watcher] Watching theme CSS, framework, lock/cache and fixtures\n")
fmt.Printf("\033[32m[I]\033[0m [Server] SSE endpoint http://%s/events\n\n", addr)
logging.Info("Server", "Gitea Mail Templates — Dev Server")
logging.Info("Server", "http://%s", addr)
logging.Info("Watcher", "Watching theme CSS, framework, lock/cache and fixtures")
logging.Info("Server", "SSE endpoint http://%s/events", addr)
return http.ListenAndServe(addr, mux)
}
@@ -207,18 +208,20 @@ func (s *DevServer) watchThemes() {
last, ok := s.lastMods[path]
if !ok || mod.After(last) {
rel, _ := filepath.Rel(s.cfg.ThemesDir, path)
fmt.Printf("\033[32m[I]\033[0m [Watcher] %s changed\n", filepath.ToSlash(rel))
logging.Info("Watcher", "%s changed", filepath.ToSlash(rel))
}
}
for path := range s.lastMods {
if _, ok := current[path]; !ok {
rel, _ := filepath.Rel(s.cfg.ThemesDir, path)
fmt.Printf("\033[32m[I]\033[0m [Watcher] %s deleted\n", filepath.ToSlash(rel))
logging.Info("Watcher", "%s deleted", filepath.ToSlash(rel))
}
}
s.lastMods = current
s.modsMu.Unlock()
s.rebuildAll()
if err := s.rebuildAll(); err != nil {
logging.Error("Builder", "Rebuild failed: %v", err)
}
} else {
s.modsMu.Unlock()
}
@@ -234,7 +237,7 @@ func (s *DevServer) rebuildAll() error {
defer rebuildMu.Unlock()
start := time.Now()
fmt.Printf("\033[32m[I]\033[0m [Builder] Rebuilding all themes...\n")
logging.Info("Builder", "Rebuilding all themes...")
cfg, err := config.Load(filepath.Join(filepath.Dir(s.cfg.ThemesDir), "tools", "data", "templates_config.json"))
if err != nil {
@@ -254,7 +257,7 @@ func (s *DevServer) rebuildAll() error {
}
elapsed := time.Since(start)
fmt.Printf("\033[32m[I]\033[0m [Builder] Rebuild done in %v\n", elapsed.Round(time.Millisecond))
logging.Info("Builder", "Rebuild done in %v", elapsed.Round(time.Millisecond))
s.broadcast("reload", map[string]interface{}{"elapsed": elapsed.Milliseconds()})
return nil