Files
Martin DisibioandGitHub b05989ebf1 Upgrade dskit, requires pinning grpc (#2747)
* Upgrade dskit, requires pinning grpc

* lint

* oops update serverless too
2023-08-01 14:08:00 -04:00

29 lines
758 B
Go

package flagext
import (
"flag"
"fmt"
"os"
"strings"
)
// ParseFlagsAndArguments calls Parse() on the input flag.FlagSet and returns the parsed arguments.
func ParseFlagsAndArguments(f *flag.FlagSet) ([]string, error) {
err := f.Parse(os.Args[1:])
return f.Args(), err
}
// ParseFlagsWithoutArguments calls Parse() on the input flag.FlagSet and enforces no arguments have been parsed.
// This utility should be called whenever we only expect CLI flags but no arguments.
func ParseFlagsWithoutArguments(f *flag.FlagSet) error {
if err := f.Parse(os.Args[1:]); err != nil {
return err
}
if f.NArg() > 0 {
return fmt.Errorf("the command does not support any argument, but some were provided: %s", strings.Join(f.Args(), " "))
}
return nil
}