commit | 5049e98f754f7a5ae695b3807eb30c8c3f2fd98a | [log] [tgz] |
---|---|---|
author | Keith Batten <kbatten@gmail.com> | Mon Sep 02 16:48:07 2013 -0700 |
committer | Keith Batten <kbatten@gmail.com> | Mon Sep 02 18:46:08 2013 -0700 |
tree | b55a9996bd336ee28d0fef227ee24e324fc5a08c | |
parent | add161be265cc5e32d55053bd65945f6e458e3fe [diff] |
update API and comments for godoc
Golang implementation of docopt 0.6.1+fix
import “github.com/kbatten/docopt.go” and then run go get
.
These may be updated because it seems like a cumbersome way to get around optional parameters
func docopt.Parse(doc string, argv []string, help bool, version string, optionsFirst bool)
(args map[string]interface{}, output string, err error)
func docopt.ParseEasy(doc string)
args map[string]interface{}
func docopt.ParseLoud(doc string, argv []string, help bool, version string, optionsFirst bool)
args map[string]interface{}
func docopt.ParseQuiet(doc string, argv []string, help bool, version string, optionsFirst bool)
(args map[string]interface{}, err error)
doc
, usage string based on docopt language.
argv
, optional argument vector. set to nil
to use os.Args.
help
, set to true
to have docopt automatically handle -h
and --help
.
version
, set to a non-empty string that will automatically be shown with --version
.
optionsFirst
, set to true
to disallow mixing options and positional arguments.
args
, map[string]interface{}. interface{} can be bool
, int
, string
, []string
.
output
, help output that would normally be displayed by the other docopt.Parse*
functions.
err
nil
, no error*docopt.UserError
, user argument error*docopt.LanguageError
, developer errorpackage main
import (
"fmt"
docopt "github.com/kbatten/docopt.go"
)
func main() {
usage := `Naval Fate.
Usage:
naval_fate ship new <name>...
naval_fate ship <name> move <x> <y> [--speed=<kn>]
naval_fate ship shoot <x> <y>
naval_fate mine (set|remove) <x> <y> [--moored|--drifting]
naval_fate -h | --help
naval_fate --version
Options:
-h --help Show this screen.
--version Show version.
--speed=<kn> Speed in knots [default: 10].
--moored Moored (anchored) mine.
--drifting Drifting mine.`
arguments := docopt.ParseLoud(usage, nil, true, "Naval Fate 2.0", false)
fmt.Println(arguments)
}
All tests from the python version have been implemented and all are passing.
New language agnostic tests have been added to test_golang.docopt
.
To run them use go test
.