Skip to content

Commit

Permalink
Delete example, what isn't even shown in docs
Browse files Browse the repository at this point in the history
  • Loading branch information
n10v committed May 8, 2017
1 parent 80fe0fb commit e57e3ee
Showing 1 changed file with 0 additions and 66 deletions.
66 changes: 0 additions & 66 deletions example_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,80 +2,14 @@
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// These examples demonstrate more intricate uses of the pflag package.
package pflag_test

import (
"errors"
"fmt"
"strings"
"time"

"github.com/spf13/pflag"
)

// Example 1: A single string flag called "species" with default value "gopher".
var species = pflag.String("species", "gopher", "the species we are studying")

// Example 2: A flag with a shorthand letter.
var gopherType = pflag.StringP("gopher_type", "g", "pocket", "the variety of gopher")

// Example 3: A user-defined flag type, a slice of durations.
type interval []time.Duration

// String is the method to format the flag's value, part of the flag.Value interface.
// The String method's output will be used in diagnostics.
func (i *interval) String() string {
return fmt.Sprint(*i)
}

func (i *interval) Type() string {
return "interval"
}

// Set is the method to set the flag value, part of the flag.Value interface.
// Set's argument is a string to be parsed to set the flag.
// It's a comma-separated list, so we split it.
func (i *interval) Set(value string) error {
// If we wanted to allow the flag to be set multiple times,
// accumulating values, we would delete this if statement.
// That would permit usages such as
// -deltaT 10s -deltaT 15s
// and other combinations.
if len(*i) > 0 {
return errors.New("interval flag already set")
}
for _, dt := range strings.Split(value, ",") {
duration, err := time.ParseDuration(dt)
if err != nil {
return err
}
*i = append(*i, duration)
}
return nil
}

// Define a flag to accumulate durations. Because it has a special type,
// we need to use the Var function and therefore create the flag during
// init.

var intervalFlag interval

func init() {
// Tie the command-line flag to the intervalFlag variable and
// set a usage message.
pflag.Var(&intervalFlag, "deltaT", "comma-separated list of intervals to use between events")
}

func Example() {
// All the interesting pieces are with the variables declared above, but
// to enable the pflag package to see the flags defined there, one must
// execute, typically at the start of main (not init!):
// pflag.Parse()
// We don't run it here because this is not a main function and
// the testing suite has already parsed the flags.
}

func ExampleShorthandLookup() {
name := "verbose"
short := name[:1]
Expand Down

0 comments on commit e57e3ee

Please sign in to comment.