En construcción

Propiedad “commands”

Esta propiedad es un objeto que contendrá una lista de comandos que podremos ejecutar desde la línea de comandos cuando lo necesitemos, la clave es el comando que ejecutaremos posteriormente al comando de “bo” y el valor contendrá un grupo de comandos a ejecutar, por ejemplo:

module . exports   =   {
commands :   {
mis_comandos_1 :   { ... } ,
mis_comandos_2 :   { ... }
}
}

Si nosotros escribimos el comando bo mis_comandos_1, se ejecutará, el grupo de comandos que se especifica en el valor de mis_comandos_1.

Grupo de comandos

Este es un objeto que describe cómo se ejecutará una serie de comandos, en la línea de comandos. Las propiedades de este objeto son:

  • name (string)(opcional): Es un nombre descriptivo del grupo de comandos. Si escribimos este nombre, aparecerá cuando ejecutemos el comando bo commands.
  • description (string)(opcional): Esta propiedad es una descripción más larga y detallada del grupo de comandos. Si rellenamos esta propiedad, aparecerá cuando ejecutemos el comando bo commands
  • commands (array[object]): Esta propiedad contiene un grupo de comandos que se ejecutarán en la línea de comandos.

A continuación se ejemplifica cómo quedaría este objeto, hasta el nivel descrito:

module . exports   =   {
commands :   {
mis_comandos_1 :   {
name :   " mi   nombre   1 " ,
description :   " mi   descripción   larga   1 " ,
commands :   [ ... ]
} ,
mis_comandos_2 :   {
name :   " mi   nombre   2 " ,
description :   " mi   descripción   larga   2 " ,
commands :   [ ... ]
}
}
}

Comando

Por último, este objeto representa un comando de la línea de comandos. Las propiedades de un comando son:

  • command (string): El comando que se ejecutará en la consola, por ejemplo node.
  • args (array[string]): En este arreglo indicaremos los argumentos que tiene el comando, por ejemplo: ["./mi_dri/mi_script.js"].
  • is_async (true/false): Con esta propiedad, indicamos si la ejecución de los comandos posteriores tienen que esperar a que termine este comando o pueden continuar aun sin haber terminado la ejecución de este comando (por defecto, todos los comandos se ejecutan de manera síncrona, también hay que considerar que un comando asíncrono no pintara ninguna línea en la consola).
  • options (object): en este objeto podemos meter otras propiedades para modificar el comportamiento del comando, si quieres saber más de las propiedades que puedes usar, visita:

De esta forma, podremos ver que el ejemplo de comandos quedaría de la siguiente forma:

module . exports   =   {
commands :   {
mis_comandos_1 :   {
name :   " mi   nombre   1 " ,
description :   " mi   descripción   larga   1 " ,
commands :   [
{   command : " bo " ,   args : [ " build " ,   " -e " ,   " prod " ]   } ,
{   command : " node " ,   args : [ " ./utils/versionador.js " ]   } ,
{   command : " node " ,   args : [ " ./utils/editor.js " ]   }
]
} ,
mis_comandos_2 :   {
name :   " mi   nombre   2 " ,
description :   " mi   descripción   larga   2 " ,
commands :   [
{   command : " bo " ,   args : [ " mi_tarea_1 " ]   } ,
{   command : " firebase " ,   args : [ " deploy " ]   } ,
{   command : " bo " ,   args : [ " stop " ,   " -all " ]   }
]
}
}
}