Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics

Dashboard
Notifications
Mark all as read
Q&A

Capture args from repeatable flags in Golang pflags package

+3
−0

How do I create a flag that can be used multiple times in a command using the pflag package? For example, let's say I wanted to select multiple fields and did not want to have to use comma-separation with a single flag, but instead something like follows:

cmd -f field1 -f field2 -f field3

I'd want to add each argument passed to an -f flag into a slice (or into a map[string]struct{}).

  1. Is this already built into pflag?
  2. How do I accomplish this?
Why does this post require moderator attention?
You might want to add some details to your flag.
Why should this post be closed?

0 comments

1 answer

+2
−0
  1. Yes, this is supported by the flag definition functions with Array or Slice in their names. See the reference docs for pflag.

  2. A simple example below:

package main

import (
	"fmt"

	flag "github.com/spf13/pflag"
)

func main() {
	var flagvar []string
	flag.StringArrayVarP(&flagvar, "flag", "f", []string{}, "help msg")
	flag.Parse()
	fmt.Println("Flag slice:", flagvar)
}
>cmd -f a -f b -f c
Flag slice: [a b c]
Why does this post require moderator attention?
You might want to add some details to your flag.

0 comments

Sign up to answer this question »