| // Copyright IBM Corp. 2014, 2026 | |
| // SPDX-License-Identifier: BUSL-1.1 | |
| package arguments | |
| import ( | |
| "github.com/hashicorp/terraform/internal/tfdiags" | |
| ) | |
| // StatePull represents the command-line arguments for the state pull command. | |
| type StatePull struct { | |
| // Vars are the variable-related flags (-var, -var-file). | |
| Vars *Vars | |
| } | |
| // ParseStatePull processes CLI arguments, returning a StatePull value and | |
| // diagnostics. If errors are encountered, a StatePull value is still returned | |
| // representing the best effort interpretation of the arguments. | |
| func ParseStatePull(args []string) (*StatePull, tfdiags.Diagnostics) { | |
| var diags tfdiags.Diagnostics | |
| pull := &StatePull{ | |
| Vars: &Vars{}, | |
| } | |
| cmdFlags := extendedFlagSet("state pull", nil, nil, pull.Vars) | |
| if err := cmdFlags.Parse(args); err != nil { | |
| diags = diags.Append(tfdiags.Sourceless( | |
| tfdiags.Error, | |
| "Failed to parse command-line flags", | |
| err.Error(), | |
| )) | |
| } | |
| return pull, diags | |
| } |