From 978c5bdf1d58cfa98d4bdc6578b9b143c038f659 Mon Sep 17 00:00:00 2001 From: Anuj Chaudhari Date: Thu, 23 Jan 2025 14:19:57 -0800 Subject: [PATCH] Add additional argument helpers --- command/arguments.go | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/command/arguments.go b/command/arguments.go index 2c074644..b8e48f82 100644 --- a/command/arguments.go +++ b/command/arguments.go @@ -86,6 +86,40 @@ func NamesArg(names *[]string) Arg { } } +func Argument(name string, val *string) Arg { + return Arg{ + Name: name, + Arity: 1, + Set: func(_ *cobra.Command, args []string, offset int) error { + *val = args[offset] + return nil + }, + } +} + +func OptionalArgument(name string, val *string) Arg { + arg := Argument(name, val) + arg.Optional = true + return arg +} + +func RemainingArguments(name string, values *[]string) Arg { + return Arg{ + Name: name, + Arity: -1, + Set: func(_ *cobra.Command, args []string, offset int) error { + *values = args[offset:] + return nil + }, + } +} + +func OptionalRemainingArguments(name string, values *[]string) Arg { + arg := RemainingArguments(name, values) + arg.Optional = true + return arg +} + func BareDoubleDashArgs(values *[]string) Arg { return Arg{ Arity: -1,