commit | c4d72bb6e19016aebcf611fe19376d46f85f1752 | [log] [tgz] |
---|---|---|
author | Jonathan Rudenberg <jonathan@titanous.com> | Sat Jun 14 11:58:36 2014 -0700 |
committer | Jonathan Rudenberg <jonathan@titanous.com> | Sat Jun 14 11:58:36 2014 -0700 |
tree | 7d376b152b56a953d24b4a6f1dc96c8aa6cbdb28 | |
parent | 7fb3e64728058525f5940d913d0b854474dcd66a [diff] |
Return Args struct to avoid type assertions
An implementation of docopt in the Go programming language.
docopt helps you create beautiful command-line interfaces easily:
package main
import (
"fmt"
"github.com/docopt/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.Parse(usage, nil, true, "Naval Fate 2.0", false)
fmt.Println(arguments)
}
docopt parses command-line arguments based on a help message. Don't write parser code: a good help message already has all the necessary information in it.
⚠ Use the alias “docopt-go”. To use docopt in your Go code:
import "github.com/docopt/docopt-go"
To install docopt according to your $GOPATH
:
$ go get github.com/docopt/docopt-go
func Parse(doc string, argv []string, help bool, version string,
optionsFirst bool, exit ...bool) (map[string]interface{}, error)
Parse argv
based on the command-line interface described in doc
.
Given a conventional command-line help message, docopt creates a parser and processes the arguments. See https://github.com/docopt/docopt#help-message-format for a description of the help message format. If argv
is nil
, os.Args[1:]
is used.
docopt returns a map of option names to the values parsed from argv
, and an error or nil
.
More documentation for docopt is available at GoDoc.org.
All tests from the Python version are implemented and passing at Travis CI. New language-agnostic tests have been added to test_golang.docopt.
To run tests for docopt-go, use go test
.