重构 auto-check:拆分包架构,精简 workflow 为纯调度循环

各包职责:
- config: 分类 YAML 配置
- model: Device/IP/MAC 公共类型
- discovery: 扫描 + ARP MAC 解析 + Devices 变量
- sshclient: SSH 连接
- stress: stress-ng/stressapptest 压测 + Results 变量
- report: 80mm 热敏模板/sparkline/打印 + Printed 变量
- workflow: 永久循环调度 + Start/Stop

workflow 已精简为 100 行纯编排,所有业务逻辑下沉各包
This commit is contained in:
张威33321
2026-08-11 20:58:19 +08:00
parent 19f6050147
commit 700ba91883
17 changed files with 867 additions and 516 deletions

View File

@@ -0,0 +1,35 @@
package report
import "embed"
//go:embed templates/*.tmpl
var templateFS embed.FS
// embeddedTemplates 内嵌模板列表
var embeddedTemplates = []string{
"templates/report_80mm.tmpl", // 80mm 热敏纸文本报告
}
// Render80mm 渲染 80mm 热敏纸文本报告
func (r *Report) Render80mm() (string, error) {
return r.renderTemplate("templates/report_80mm.tmpl", DefaultTemplateConfig())
}
// Render80mmWithConfig 使用自定义宽度渲染
func (r *Report) Render80mmWithConfig(cfg TemplateConfig) (string, error) {
return r.renderTemplate("templates/report_80mm.tmpl", cfg)
}
// renderTemplate 从内嵌模板渲染
func (r *Report) renderTemplate(name string, cfg TemplateConfig) (string, error) {
data, err := templateFS.ReadFile(name)
if err != nil {
return "", err
}
return RenderTemplate(string(data), r, cfg)
}
// TemplateNames 返回可用模板列表
func TemplateNames() []string {
return embeddedTemplates
}