sosreport.go 850 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package installationinfo
  2. import (
  3. "fmt"
  4. config "github.com/OliveTin/OliveTin/internal/config"
  5. "gopkg.in/yaml.v3"
  6. )
  7. var Config *config.Config
  8. type sosReportConfig struct {
  9. CountOfActions int
  10. LogLevel string
  11. }
  12. func configToSosreport(cfg *config.Config) *sosReportConfig {
  13. return &sosReportConfig{
  14. CountOfActions: len(cfg.Actions),
  15. LogLevel: cfg.LogLevel,
  16. }
  17. }
  18. func GetSosReport() string {
  19. ret := ""
  20. ret += "### SOSREPORT START (copy all text to SOSREPORT END)\n"
  21. out, _ := yaml.Marshal(Build)
  22. ret += fmt.Sprintf("# Build: \n%+v\n", string(out))
  23. out, _ = yaml.Marshal(Runtime)
  24. ret += fmt.Sprintf("# Runtime:\n%+v\n", string(out))
  25. out, _ = yaml.Marshal(configToSosreport(Config))
  26. ret += fmt.Sprintf("# Config:\n%+v\n", string(out))
  27. ret += "### SOSREPORT END (copy all text from SOSREPORT START)\n"
  28. return ret
  29. }