1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-docopt.go

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

docopt-go

Статус сборки Статус покрытия Документация Go

Реализация docopt на языке программирования Go.

docopt помогает легко создавать красивые командные строки:

package main

import (
    "fmt"
    "github.com/docopt/docopt-go"
)

func main() {
    usage := `Морская судьба.

Использование:
  naval_fate корабль новый <название>...
  naval_fate корабль <название> переместить <x> <y> [--скорость=<узл>]
  naval_fate корабль выстрелить <x> <y>
  naval_fate мина (установить|удалить) <x> <y> [--зафиксированная|--плавающая]
  naval_fate -h | --помощь
  naval_fate --версия

Параметры:
  -h --помощь       Показать это сообщение.
  --версия         Показать версию.
  --скорость=<узл> Скорость в узлах [по умолчанию: 10].
  --зафиксированная Зафиксированная мина.
  --плавающая      Плавающая мина.`

    arguments, _ := docopt.ParseDoc(usage)
    fmt.Println(arguments)
}

docopt парсит аргументы командной строки на основе справочной информации. Не пишите код парсера: хорошее справочное сообщение уже содержит всю необходимую информацию.

Установка

⚠ Используйте псевдоним "docopt-go". Чтобы использовать docopt в вашем Go коде:

import "github.com/docopt/docopt-go"

Чтобы установить docopt в вашей директории $GOPATH:

$ go get github.com/docopt/docopt-go
``````console
$ go get github.com/docopt/docopt-go

API

С использованием обычного справочного сообщения командной строки, docopt обрабатывает аргументы. См. https://github.com/docopt/docopt#format-of-help-messages для описания формата справочных сообщений.

Эта библиотека предлагает три различных API в зависимости от уровня контроля. Самый простой способ парсинга вашего docopt использования — просто вызвать:

docopt.ParseDoc(usage)

Это будет использовать os.Args[1:] как массив argv, и использовать стандартные параметры парсера. Если вам требуется предоставить свои собственные строки версий и аргументов, используйте:

docopt.ParseArgs(usage, argv, "1.2.3")

Если последний параметр (версия) является непустой строкой, он будет выводиться при передаче --версия в массиве argv. Наконец, мы можем создать свой собственный экземпляр docopt.Parser, что позволяет контролировать, как выводятся сообщения помощи и выходят после отображения справочных сообщений, и т.д.```go parser := &docopt.Parser{ HelpHandler: docopt.PrintHelpOnly, OptionsFirst: true, } opts, err := parser.ParseArgs(usage, argv, "")


В частности, установка собственной функции `HelpHandler` делает юнит-тестирование собственных документов с примерами командной строки намного приятнее.

Все три этих вызова возвращают карту значений опций, а также ошибку или `nil`. Вы можете получить значения с помощью помощников, либо просто рассматривать это как обычную карту:
``````go
флаг, _ := opts.Bool("--flag")
секунды, _ := opts.Int("<seconds>")

Кроме того, вы можете привязать эти опции к структуре, назначая значения опций экспортированным полям этой структуры за один шаг.

var конфиг struct {
  Команда string `docopt:"<cmd>"`
  Попытки int    `docopt:"-n"`
  Сила    bool   // Получает значение опции --force
}
opts.Bind(&конфиг)

Дополнительная документация доступна на godoc.org.

Юнит-тестирование

Юнит-тестирование ваших собственных документов использования рекомендовано, чтобы быть уверенным, что при данном вызове командной строки установлены ожидаемые опции. Пример того, как это сделать, находится в папке examples.

Тесты

Все тесты из версии на Python реализованы и проходят успешно на Travis CI. Новые языково-независимые тесты были добавлены в test_golang.docopt.

Чтобы запустить тесты для docopt-go, используйте go test.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

An implementation of docopt in the Go programming language. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-docopt.go.git
git@api.gitlife.ru:oschina-mirror/mirrors-docopt.go.git
oschina-mirror
mirrors-docopt.go
mirrors-docopt.go
master