Allows sourcing info about repo user/hostname from both the config file and flags for maintenance. Since user/hostname mostly matters for maintenance don't add the flags for all commands. Do allow config file parameters for them since that has a lot of repo-level information already. Currently not setup to persist these values in the config file --- #### Does this PR need a docs update or release note? - [ ] ✅ Yes, it's included - [x] 🕐 Yes, but in a later PR - [ ] ⛔ No #### Type of change - [x] 🌻 Feature - [ ] 🐛 Bugfix - [ ] 🗺️ Documentation - [ ] 🤖 Supportability/Tests - [ ] 💻 CI/Deployment - [ ] 🧹 Tech Debt/Cleanup #### Issue(s) * #3569 #### Test Plan - [x] 💪 Manual - [ ] ⚡ Unit test - [ ] 💚 E2E
37 lines
989 B
Go
37 lines
989 B
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.Defaults()
|
|
|
|
if flags.FailFastFV {
|
|
opt.FailureHandling = control.FailFast
|
|
}
|
|
|
|
opt.DisableMetrics = flags.NoStatsFV
|
|
opt.RestorePermissions = flags.RestorePermissionsFV
|
|
opt.SkipReduce = flags.SkipReduceFV
|
|
opt.ToggleFeatures.DisableIncrementals = flags.DisableIncrementalsFV
|
|
opt.ToggleFeatures.DisableDelta = flags.DisableDeltaFV
|
|
opt.ToggleFeatures.ExchangeImmutableIDs = flags.EnableImmutableIDFV
|
|
opt.ToggleFeatures.DisableConcurrencyLimiter = flags.DisableConcurrencyLimiterFV
|
|
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
|
|
}
|