Documentation
¶
Overview ¶
Package cobraargs — переходник делегирующей формы мигратора к общим текстам отказа и общему перечню команд.
Зачем отдельный пакет, а не три копии рядом с точками наката (#1461) ¶
Тексты отказа производит migratorcli — один на семь сервисов. Делегирующая форма обязана говорить ими же, иначе на одном и том же входе оператор получает две редакции одного отказа, а образец, написанный по одному сервису, на соседнем не срабатывает. Три копии этого переходника были бы тремя местами об одном предмете и разошлись бы молча — ровно тем способом, каким различие и накопилось.
Пакет отделён от migratorcli потому, что зовёт cobra: прямая четвёрка её не собирает и не должна, а разбор аргументов у неё свой.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HideShellCompletion ¶
HideShellCompletion снимает с дерева команду генерации дополнений оболочки.
Cobra доводит её сама; прямая форма её не имеет и иметь не будет — дополнения оболочки требуют своего дерева команд, а не разбора аргументов. Перечень команд читает ОПЕРАТОР, значит он тоже поверхность: команда, существующая у трёх сервисов из семи, — то же различие, что и разное имя бинаря.
Вторую доведённую команду, `help`, снимать НЕЛЬЗЯ тем же способом: шаблон cobra печатает её в перечне независимо от признака скрытности, и обойти это можно лишь зарегистрировав скрытую команду под ЧУЖИМ именем — то есть завести команду, которой нет у четверых, вместо той, которой нет у четверых. Поэтому равенство по `help` достигнуто с другой стороны: его понимает и прямая форма (см. разбор `help` в migratorcli.Parse).
func NoExtraArguments ¶
NoExtraArguments — поле Args подкоманды: лишний позиционный аргумент отвергается общим текстом.
Умолчание cobra (`Args == nil`) принимает произвольные аргументы МОЛЧА, поэтому `up 800001` — обычная догадка о том, как задать версию, — уезжал накатывать до головы. Отказ называет верный способ.
func OnlyKnownCommands ¶
OnlyKnownCommands — поле Args КОРНЕВОЙ команды: первый позиционный аргумент, не совпавший ни с одной подкомандой, есть неизвестная подкоманда.
Перечень известных называется в самом отказе: у cobra собственный текст его не называет, и оператору приходилось идти за ним в помощь.
Types ¶
This section is empty.