Derive family member publish destinations
This commit is contained in:
@@ -9,6 +9,36 @@ import (
|
||||
"gitea.maximumdirect.net/eric/narratio/internal/pathsafe"
|
||||
)
|
||||
|
||||
type derivedPublishDestination struct {
|
||||
index int
|
||||
dest string
|
||||
}
|
||||
|
||||
func deriveMissingPublishDestinations(cfg *PublishConfig, scriptorium *ScriptoriumConfig, notarius *NotariusConfig) []derivedPublishDestination {
|
||||
if cfg == nil {
|
||||
return nil
|
||||
}
|
||||
configuredOutputs := scriptoriumOutputPathMap(scriptorium)
|
||||
extractionOutputs := notariusOutputKeySet(notarius)
|
||||
derived := make([]derivedPublishDestination, 0)
|
||||
for index, output := range cfg.Outputs {
|
||||
if strings.TrimSpace(output.Dest) != "" {
|
||||
continue
|
||||
}
|
||||
dest, err := artifactpolicy.ResolvePublishedDestinationWithExtractions(strings.TrimSpace(output.Source), "", configuredOutputs, extractionOutputs)
|
||||
if err == nil {
|
||||
derived = append(derived, derivedPublishDestination{index: index, dest: dest})
|
||||
}
|
||||
}
|
||||
return derived
|
||||
}
|
||||
|
||||
func applyMissingPublishDestinations(cfg *PublishConfig, scriptorium *ScriptoriumConfig, notarius *NotariusConfig) {
|
||||
for _, derived := range deriveMissingPublishDestinations(cfg, scriptorium, notarius) {
|
||||
cfg.Outputs[derived.index].Dest = derived.dest
|
||||
}
|
||||
}
|
||||
|
||||
func validateStorage(cfg StorageConfig) error {
|
||||
backend := strings.ToLower(strings.TrimSpace(cfg.Backend))
|
||||
switch backend {
|
||||
|
||||
Reference in New Issue
Block a user