Files
kopia/cli/command_policy_set_splitter.go
Julio López 1f9f9a1846 chore(general): use non-formatting log variants when there is no formatting (#3931)
Use non-formatting logging functions for message without formatting.
For example, `log.Info("message")` instead of `log.Infof("message")`

Configure linter for printf-like functions
2024-06-18 23:13:17 -07:00

47 lines
1.1 KiB
Go

package cli
import (
"context"
"sort"
"github.com/alecthomas/kingpin/v2"
"github.com/kopia/kopia/repo/splitter"
"github.com/kopia/kopia/snapshot/policy"
)
type policySplitterFlags struct {
policySetSplitterAlgorithmOverride string
}
func (c *policySplitterFlags) setup(cmd *kingpin.CmdClause) {
cmd.Flag("splitter", "Splitter algorithm override").EnumVar(&c.policySetSplitterAlgorithmOverride, supportedSplitterAlgorithms()...)
}
//nolint:unparam
func (c *policySplitterFlags) setSplitterPolicyFromFlags(ctx context.Context, p *policy.SplitterPolicy, changeCount *int) error {
if v := c.policySetSplitterAlgorithmOverride; v != "" {
if v == inheritPolicyString {
log(ctx).Info(" - resetting splitter algorithm override to default value inherited from parent")
p.Algorithm = ""
} else {
log(ctx).Infof(" - setting splitter algorithm override to %v", v)
p.Algorithm = v
}
*changeCount++
}
return nil
}
func supportedSplitterAlgorithms() []string {
res := append([]string{inheritPolicyString}, splitter.SupportedAlgorithms()...)
sort.Strings(res)
return res
}