各包职责: - 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 行纯编排,所有业务逻辑下沉各包
36 lines
943 B
Go
36 lines
943 B
Go
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
|
|
}
|