name: github.com/spuzirev/pflag
description: Package pflag is a drop-in replacement for Go&#39;s flag package, implementing
POSIX/GNU-style --flags.

pflag is compatible with the GNU extensions to the POSIX recommendations
for command-line options. See
http://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html

Usage:

pflag is a drop-in replacement of Go&#39;s native flag package. If you import
pflag under the name &quot;flag&quot; then all code should continue to function
with no changes.

There is one exception to this: if you directly instantiate the Flag struct
there is one more field &quot;Shorthand&quot; that you will need to set.
Most code never instantiates this struct directly, and instead uses
functions such as String(), BoolVar(), and Var(), and is therefore
unaffected.

Define flags using flag.String(), Bool(), Int(), etc.

This declares an integer flag, -flagname, stored in the pointer ip, with type *int.

If you like, you can bind the flag to a variable using the Var() functions.

Or you can create custom flags that satisfy the Value interface (with
pointer receivers) and couple them to flag parsing by

For such flags, the default value is just the initial value of the variable.

After all flags are defined, call

to parse the command line into the defined flags.

Flags may then be used directly. If you&#39;re using the flags themselves,
they are all pointers; if you bind to variables, they&#39;re values.

After parsing, the arguments after the flag are available as the
slice flag.Args() or individually as flag.Arg(i).
The arguments are indexed from 0 through flag.NArg()-1.

The pflag package also defines some new functions that are not in flag,
that give one-letter shorthands for flags. You can use these by appending
&#39;P&#39; to the name of any function that defines a flag.

Shorthand letters can be used with single dashes on the command line.
Boolean shorthand flags can be combined with other shorthand flags.

Command line flag syntax:

Unlike the flag package, a single dash before an option means something
different than a double dash. Single dashes signify a series of shorthand
letters for flags. All but the last shorthand letter must be boolean flags.

Flag parsing stops after the terminator &quot;--&quot;. Unlike the flag package,
flags can be interspersed with arguments anywhere on the command line
before this terminator.

Integer flags accept 1234, 0664, 0x1234 and may be negative.
Boolean flags (in their long form) accept 1, 0, t, f, true, false,
TRUE, FALSE, True, False.
Duration flags accept any input valid for time.ParseDuration.

The default set of command-line flags is controlled by
top-level functions.  The FlagSet type allows one to define
independent sets of flags, such as to implement subcommands
in a command-line interface. The methods of FlagSet are
analogous to the top-level functions for the command-line
flag set.
license_spdx: BSD-3-Clause
version: v1.0.7
spec_version: 1.0
home_url: https://github.com/spuzirev/pflag
news_url: https://libraries.io/go/github.com%2Fspuzirev%2Fpflag/versions.atom
date: 2021-03-20
about_resource: NONE
libraries_io_url: https://libraries.io/go/github.com%2Fspuzirev%2Fpflag?number=v1.0.7
