corso/src/cli/utils/options.go
Keepers d45842fe5c
add toggle for using the delta tree via cli (#4694)
#### Does this PR need a docs update or release note?

- [x]  No

#### Issue(s)

* #4690

#### Test Plan

- [x]  Unit test
2023-11-18 00:00:58 +00:00

44 lines
1.2 KiB
Go

package utils
import (
"github.com/alcionai/corso/src/cli/config"
"github.com/alcionai/corso/src/cli/flags"
"github.com/alcionai/corso/src/pkg/control"
)
// Control produces the control options based on the user's flags.
func Control() control.Options {
opt := control.DefaultOptions()
if flags.FailFastFV {
opt.FailureHandling = control.FailFast
}
dps := int32(flags.DeltaPageSizeFV)
if dps > 500 || dps < 1 {
dps = 500
}
opt.DeltaPageSize = dps
opt.DisableMetrics = flags.NoStatsFV
opt.SkipReduce = flags.SkipReduceFV
opt.ToggleFeatures.DisableIncrementals = flags.DisableIncrementalsFV
opt.ToggleFeatures.ForceItemDataDownload = flags.ForceItemDataDownloadFV
opt.ToggleFeatures.DisableDelta = flags.DisableDeltaFV
opt.ToggleFeatures.DisableSlidingWindowLimiter = flags.DisableSlidingWindowLimiterFV
opt.ToggleFeatures.ExchangeImmutableIDs = flags.EnableImmutableIDFV
opt.ToggleFeatures.UseDeltaTree = flags.UseDeltaTreeFV
opt.Parallelism.ItemFetch = flags.FetchParallelismFV
return opt
}
func ControlWithConfig(cfg config.RepoDetails) control.Options {
opt := Control()
opt.Repo.User = cfg.RepoUser
opt.Repo.Host = cfg.RepoHost
return opt
}