¿Existe un formato "estándar" para el texto de ayuda de la línea de comando/shell?
En caso negativo, ¿existe una norma de facto? Básicamente estoy escribiendo un texto de ayuda de línea de comando como este:
usage: app_name [options] required_input required_input2
options:
-a, --argument Does something
-b required Does something with "required"
-c, --command required Something else
-d [optlistitem1 optlistitem 2 ... ] Something with list
Lo hice básicamente leyendo el texto de ayuda de varias herramientas, pero ¿hay una lista de pautas o algo así? Por ejemplo, ¿uso corchetes o paréntesis? ¿Cómo utilizar el espaciado? ¿Qué pasa si el argumento es una lista? ¡Gracias!
Normalmente, el resultado de su ayuda debería incluir:
- Descripción de lo que hace la aplicación
- Sintaxis de uso, que:
- Se utiliza
[options]
para indicar dónde van las opciones. arg_name
para un argumento singular requerido[arg_name]
para un argumento singular y opcionalarg_name...
para un argumento requerido del cual puede haber muchos (esto es raro)[arg_name...]
para un argumento para el cual se puede proporcionar cualquier número- Tenga en cuenta que
arg_name
debe ser un nombre corto y descriptivo, en minúsculas y en mayúsculas y minúsculas.
- Se utiliza
- Una lista de opciones muy bien formateada, cada una:
- tener una breve descripción
- mostrando el valor predeterminado, si lo hay
- mostrando los valores posibles, si corresponde
- Tenga en cuenta que si una opción puede aceptar un formulario corto (p. ej.
-l
) o uno largo (p.ej.--list
), inclúyalos juntos en la misma línea, ya que sus descripciones serán las mismas.
- Breve indicador de la ubicación de los archivos de configuración o variables de entorno que podrían ser la fuente de los argumentos de la línea de comando, por ejemplo
GREP_OPTS
- Si existe una página de manual indicar como tal, en caso contrario, un breve indicador de dónde se puede encontrar ayuda más detallada
Tenga en cuenta además que es una buena forma aceptar ambos -h
y --help
activar este mensaje y que debe mostrar este mensaje si el usuario confunde la sintaxis de la línea de comandos, por ejemplo, omite un argumento requerido.
Échale un vistazo a docopt . Es un estándar formal para documentar (y analizar automáticamente) argumentos de línea de comando.
Por ejemplo...
Usage:
my_program command --option <argument>
my_program [<optional-argument>]
my_program --another-option=<with-argument>
my_program (--either-that-option | <or-this-argument>)
my_program <repeating-argument> <repeating-argument>...