Saltar a contenido

Extendiendo cla con comandos

Existe la posibilidad de escribir programas que extiendan el comando cla con nuevas funcionalidades que aprovechen la plataforma para acceder a los agentes de Clarive, elementos de configuración, y otras funcionalidades.

cla micomando --mis-opciones

Empezando

Mediante la ejecución del comando cla, se muestran la lista de comandos disponibles:

> cla help

USO: cla [-h] [-v] [--config file] comando <comando-args>

Comandos disponibles:
<service.*>       Ejecuta los servicios del Baseliner
config            Muestra toda la configuración y opciones
db                Diff de la base de datos y herramienta para el despliegue
disp              Inicia/Detiene el dispatcher
help              Esta ayuda
install           Generador del fichero de configuración
lic               Verificación de la licencia
poll              Herramienta de monitorización
prove             Ejecuta los test del sistema
ps                Lista los procesos del servidor
queue             Herramienta de gestión de colas
start             Inicia todas las tareas del servidor
stop              Detiene todas las tareas del servidor
trans             Herramienta de conversión, encriptación de la contraseña
version           Devuelve la versión de Clarive
web               Inicia/Detiene el servidor web
ws                Cadena de herramientas de los webservices

cla help <comando> para obtener todos los subcomandos.
cla <comando> -h para los opciones del comando.

Añadir nuevos comandos se realiza desde dentro de un plugin.

Para crear un nuevo plugin, en caso de que no tener uno ya, ejecutar el comando plugin-bootstrap:

cla plugin-new --plugin myplugin

Ahora hay que crear un archivo con los comandos, supongamos que queremos crear el comando cmd, este sería el archivo correspondiente:

CLARIVE_BASE/plugins/myplugin/cmd/mycmd.js

Un programa de comandos es sólo un programa en JavaScript:

print("Hola mundo");

Configuración de comandos completa

Aunque las opciones de línea de comandos están disponibles, la forma correcta de acceder a la configuración de comandos es llamando a process.options(clave), que recupera el valor correcto de configuración que incluye:

  • El archivo de configuración YAML global.
  • El archivo YAML de configuración del entorno (establecido con -c)
  • La sección del comando en el archivo de configuración
  • Por último, los flags de los argumentos de línea de comandos

La precedencia va de abajo hacia arriba.

La función process.options (clave) accede al merge de las opciones de pila.

print( process.options('mongo.db_name') );

Argumentos del comando

Los argumentos de línea de comandos se envían al programa de a través de la variable process:

cla.dump( process.argv() );

También se puede acceder a las opciones individuales como una objeto, más fácil de manipular que pasar por el array args.

var myoption = process.args('myoption');
print( "El usuario ha introducido --myoption=" + myoption );