65 lines
1.8 KiB
Go
65 lines
1.8 KiB
Go
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.SelectedPipelineOverlay(cfg.Pipeline); ok {
|
|
provenance.SelectedOverlay = &manifest.SelectedOverlayProvenance{
|
|
Name: selected.Name,
|
|
Source: selected.Source,
|
|
}
|
|
}
|
|
if provenance.SelectedOverlay == nil && provenance.EffectiveConfigDigest == "" {
|
|
return nil
|
|
}
|
|
return provenance
|
|
}
|
|
|
|
func applyEffectiveConfigProvenance(m *manifest.Manifest, cfg *config.Config) {
|
|
if m != nil {
|
|
m.EffectiveConfig = effectiveConfigProvenance(cfg)
|
|
}
|
|
}
|
|
|
|
func effectiveConfigSummary(cfg *config.Config) string {
|
|
provenance := effectiveConfigProvenance(cfg)
|
|
if provenance == nil {
|
|
return "overlay=none digest=unavailable"
|
|
}
|
|
overlay := "none"
|
|
if provenance.SelectedOverlay != nil {
|
|
overlay = provenance.SelectedOverlay.Name + " (" + provenance.SelectedOverlay.Source + ")"
|
|
}
|
|
digest := provenance.EffectiveConfigDigest
|
|
if digest == "" {
|
|
digest = "unavailable"
|
|
}
|
|
return fmt.Sprintf("overlay=%s digest=%s", overlay, digest)
|
|
}
|
|
|
|
func persistedEffectiveConfigSummary(provenance *manifest.EffectiveConfigProvenance) string {
|
|
if provenance == nil {
|
|
return "overlay=none digest=unavailable"
|
|
}
|
|
overlay := "none"
|
|
if provenance.SelectedOverlay != nil {
|
|
overlay = provenance.SelectedOverlay.Name + " (" + provenance.SelectedOverlay.Source + ")"
|
|
}
|
|
digest := provenance.EffectiveConfigDigest
|
|
if digest == "" {
|
|
digest = "unavailable"
|
|
}
|
|
return fmt.Sprintf("overlay=%s digest=%s", overlay, digest)
|
|
}
|