33 lines
971 B
Go
33 lines
971 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
configkit "gitea.maximumdirect.net/eric/ConfigKit"
|
|
)
|
|
|
|
const maxConfigDocumentBytes int64 = 8 << 20
|
|
|
|
func loadCampaignWithConfigKit(path string) (*CampaignConfig, error) {
|
|
result, err := configkit.Load(configkit.File(path), configkit.Options[CampaignConfig]{
|
|
Definition: configkit.Definition[CampaignConfig]{},
|
|
})
|
|
if err != nil {
|
|
return nil, describeConfigKitLoadError("campaign", err)
|
|
}
|
|
return &result.Config, nil
|
|
}
|
|
|
|
func loadSessionWithConfigKit(label string, data []byte) (*SessionConfig, error) {
|
|
if int64(len(data)) > maxConfigDocumentBytes {
|
|
return nil, fmt.Errorf("load session config: session file %q exceeds %d-byte limit", label, maxConfigDocumentBytes)
|
|
}
|
|
result, err := configkit.Load(configkit.Bytes(label, data), configkit.Options[SessionConfig]{
|
|
Definition: configkit.Definition[SessionConfig]{},
|
|
})
|
|
if err != nil {
|
|
return nil, describeConfigKitLoadError("session", err)
|
|
}
|
|
return &result.Config, nil
|
|
}
|