package app import ( "fmt" "gitea.maximumdirect.net/eric/narratio/internal/config" "gitea.maximumdirect.net/eric/narratio/internal/manifest" ) func effectiveConfigProvenance(cfg *config.Config) *manifest.EffectiveConfigProvenance { if cfg == nil || cfg.Pipeline == nil { return nil } provenance := &manifest.EffectiveConfigProvenance{ EffectiveConfigDigest: config.EffectivePipelineDigest(cfg.Pipeline), } if selected, ok := config.SelectedPipelineProfile(cfg.Pipeline); ok { provenance.SelectedProfile = &manifest.SelectedProfileProvenance{ Name: selected.Name, Source: selected.Source, } } if provenance.SelectedProfile == nil && provenance.EffectiveConfigDigest == "" { return nil } return provenance } func applyEffectiveConfigProvenance(m *manifest.Manifest, cfg *config.Config) { if m != nil { m.EffectiveConfig = effectiveConfigProvenance(cfg) } } func applyEffectiveConfigProvenanceToRun(m *manifest.RunManifest, cfg *config.Config) { if m != nil { m.EffectiveConfig = effectiveConfigProvenance(cfg) } } func effectiveConfigSummary(cfg *config.Config) string { provenance := effectiveConfigProvenance(cfg) if provenance == nil { return "profile=none digest=unavailable" } profile := "none" if provenance.SelectedProfile != nil { profile = provenance.SelectedProfile.Name + " (" + provenance.SelectedProfile.Source + ")" } digest := provenance.EffectiveConfigDigest if digest == "" { digest = "unavailable" } return fmt.Sprintf("profile=%s digest=%s", profile, digest) } func persistedEffectiveConfigSummary(provenance *manifest.EffectiveConfigProvenance) string { if provenance == nil { return "profile=none digest=unavailable" } profile := "none" if provenance.SelectedProfile != nil { profile = provenance.SelectedProfile.Name + " (" + provenance.SelectedProfile.Source + ")" } digest := provenance.EffectiveConfigDigest if digest == "" { digest = "unavailable" } return fmt.Sprintf("profile=%s digest=%s", profile, digest) }