/
githubmirror
/
terraform
Обзор
Документация
Войти
/
githubmirror
/
terraform
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
internal/command/arguments/state_push.go
72 строки
2 KB
Daniel Banck
command: Add vars to state push command
17 мар 2026, 18:41
17 мар 2026, 18:41
36b2653
Код
Авторство
О чём код?
// Copyright IBM Corp. 2014, 2026 // SPDX-License-Identifier: BUSL-1.1 package arguments import ( "time" "github.com/hashicorp/terraform/internal/tfdiags" ) // StatePush represents the command-line arguments for the state push command. type StatePush struct { // Vars are the variable-related flags (-var, -var-file). Vars *Vars // Force writes the state even if lineages don't match or the remote // serial is higher. Force bool // StateLock, if true, requests that the backend lock the state for this // operation. StateLock bool // StateLockTimeout is the duration to retry a state lock. StateLockTimeout time.Duration // IgnoreRemoteVersion, if true, continues even if remote and local // Terraform versions are incompatible. IgnoreRemoteVersion bool // Path is the path to the state file to push, or "-" for stdin. Path string } // ParseStatePush processes CLI arguments, returning a StatePush value and // diagnostics. If errors are encountered, a StatePush value is still returned // representing the best effort interpretation of the arguments. func ParseStatePush(args []string) (*StatePush, tfdiags.Diagnostics) { var diags tfdiags.Diagnostics push := &StatePush{ Vars: &Vars{}, } cmdFlags := extendedFlagSet("state push", nil, nil, push.Vars) cmdFlags.BoolVar(&push.Force, "force", false, "") cmdFlags.BoolVar(&push.StateLock, "lock", true, "lock state") cmdFlags.DurationVar(&push.StateLockTimeout, "lock-timeout", 0, "lock timeout") cmdFlags.BoolVar(&push.IgnoreRemoteVersion, "ignore-remote-version", false, "continue even if remote and local Terraform versions are incompatible") if err := cmdFlags.Parse(args); err != nil { diags = diags.Append(tfdiags.Sourceless( tfdiags.Error, "Failed to parse command-line flags", err.Error(), )) } args = cmdFlags.Args() if len(args) != 1 { diags = diags.Append(tfdiags.Sourceless( tfdiags.Error, "Required argument missing", "Exactly one argument expected: the path to a Terraform state file.", )) return push, diags } push.Path = args[0] return push, diags }