golang port of docopt