From d75e17a48934e4896963fb0fee78dbd53f4e780b Mon Sep 17 00:00:00 2001 From: Slack Coder Date: Mon, 21 Apr 2025 16:45:39 -0500 Subject: Implement staging and verification Ensure data integrity by supporting data staging and verification. --- internal/service/config.go | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'internal/service/config.go') diff --git a/internal/service/config.go b/internal/service/config.go index 0f34997..2a8da6e 100644 --- a/internal/service/config.go +++ b/internal/service/config.go @@ -10,10 +10,21 @@ import ( "github.com/BurntSushi/toml" ) +type StagingMethod string + +const ( + StagingMethodNone = "none" + StagingMethodTemporary = "temporary" + StagingMethodPersistent = "persistent" +) + // Global parameters type GlobalConfig struct { - MaxInterval *Duration `toml:"max-interval"` - MinInterval *Duration `toml:"min-interval"` + MaxInterval *Duration `toml:"max-interval"` + MinInterval *Duration `toml:"min-interval"` + StagingMethod string `toml:"staging-method,omitempty"` + StagingPath string `toml:"staging-path,omitempty"` + Verify string `toml:"verify,omitempty"` } type Config struct { @@ -27,8 +38,11 @@ func (c *Config) String() string { var DefaultConfig = Config{ GlobalConfig: GlobalConfig{ - MaxInterval: DurationRef(24 * time.Hour), - MinInterval: DurationRef(time.Hour), + MaxInterval: DurationRef(24 * time.Hour), + MinInterval: DurationRef(time.Hour), + StagingMethod: StagingMethodNone, + StagingPath: "/tmp/mirror", + Verify: "", }, } @@ -113,5 +127,11 @@ func (c *Config) Append(src *Config) { if src.MinInterval != nil { c.MinInterval = src.MinInterval } + if src.StagingMethod != "" { + c.StagingMethod = src.StagingMethod + } + if src.StagingPath != "" { + c.StagingPath = src.StagingPath + } c.Mirrors = append(c.Mirrors, src.Mirrors...) } -- cgit v1.2.3