mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-28 18:01:01 -06:00
ec27526cc3
This was failing because we now handle the settings for the local backend a little differently as a result of decoding it with the HCL2 machinery. Specifically, the backend.State* fields are now assumed to be what is given in configuration, and any CLI overrides are maintained separately in OverrideState* fields so that they can be imposed "just in time" in StatePaths. This is particularly important because OverrideStatePath (when set) is used regardless of workspace name, while StatePath is a suitable value only for the "default" workspace, with others needing to be constructed from StateWorkspaceDir instead.
37 lines
1009 B
Go
37 lines
1009 B
Go
package local
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/hashicorp/terraform/backend"
|
|
)
|
|
|
|
// backend.CLI impl.
|
|
func (b *Local) CLIInit(opts *backend.CLIOpts) error {
|
|
b.CLI = opts.CLI
|
|
b.CLIColor = opts.CLIColor
|
|
b.ShowDiagnostics = opts.ShowDiagnostics
|
|
b.ContextOpts = opts.ContextOpts
|
|
b.OpInput = opts.Input
|
|
b.OpValidation = opts.Validation
|
|
b.RunningInAutomation = opts.RunningInAutomation
|
|
|
|
// configure any new cli options
|
|
if opts.StatePath != "" {
|
|
log.Printf("[TRACE] backend/local: CLI option -state is overriding state path to %s", opts.StatePath)
|
|
b.OverrideStatePath = opts.StatePath
|
|
}
|
|
|
|
if opts.StateOutPath != "" {
|
|
log.Printf("[TRACE] backend/local: CLI option -state-out is overriding state output path to %s", opts.StateOutPath)
|
|
b.OverrideStateOutPath = opts.StateOutPath
|
|
}
|
|
|
|
if opts.StateBackupPath != "" {
|
|
log.Printf("[TRACE] backend/local: CLI option -backup is overriding state backup path to %s", opts.StateBackupPath)
|
|
b.OverrideStateBackupPath = opts.StateBackupPath
|
|
}
|
|
|
|
return nil
|
|
}
|