pip compatible server to serve Python packages out of GitHub
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Alex Flint 6582088596 udpate readme 10 years ago
example udpate readme 10 years ago
.gitignore Initial commit 10 years ago
LICENSE Initial commit 10 years ago
README.md udpate readme 10 years ago
parse.go udpate readme 10 years ago
parse_test.go added usage generation 10 years ago
usage.go udpate readme 10 years ago

README.md

Argument parsing for Go

import "github.com/alexflint/go-arg"

var args struct {
	Foo  string
	Bar  bool
}
arg.MustParse(&args)
fmt.Println(args.Foo, args.Bar)
$ ./example --foo=hello --bar
hello True

Default values

var args struct {
	Foo string
	Bar bool
}
args.Foo = "default value"
arg.MustParse(&args)

Marking options as required

var args struct {
	Foo string `arg:"required"`
	Bar bool
}
arg.MustParse(&args)

Positional argument

var args struct {
	Input   string   `arg:"positional"`
	Output  []string `arg:"positional"`
	Verbose bool
}
arg.MustParse(&args)
fmt.Println("Input:", input)
fmt.Println("Output:", output)
$ ./example src.txt x.out y.out z.out
Input: src.txt
Output: [x.out y.out z.out]

Usage strings

$ ./example -h
usage: [--verbose] [--dataset DATASET] [--optimize OPTIMIZE] [--help] INPUT [OUTPUT [OUTPUT ...]] 

positional arguments:
  input
  output

options:
--verbose, -v            verbosity level
--dataset DATASET        dataset to use
--optimize OPTIMIZE, -O OPTIMIZE
                         optimization level
--help, -h               print this help message

Options with multiple values

var args struct {
	Database string
	IDs      []int64
}
arg.MustParse(&args)
fmt.Printf("Fetching the following IDs from %s: %q", args.Database, args.IDs)
./example -database foo -ids 1 2 3
Fetching the following IDs from foo: [1 2 3]