commands/variable/variableutils/value.go (25 lines of code) (raw):

package variableutils import ( "errors" "fmt" "io" "strings" "gitlab.com/gitlab-org/cli/commands/cmdutils" "gitlab.com/gitlab-org/cli/pkg/iostreams" ) func GetValue(value string, ios *iostreams.IOStreams, args []string) (string, error) { if value != "" { return value, nil } else if len(args) == 2 { return args[1], nil } if ios.IsInTTY { return "", &cmdutils.FlagError{Err: errors.New("no value specified but nothing on STDIN")} } // read value from STDIN if not provided defer ios.In.Close() stdinValue, err := io.ReadAll(ios.In) if err != nil { return "", fmt.Errorf("failed to read value from STDIN: %w", err) } return strings.TrimSpace(string(stdinValue)), nil }