-
Resumen del artículo
- Presenta varios trucos para automatizar herramientas CLI combinando scripts de Bash con Ruby.
- Aunque también se pueden usar otros lenguajes de scripting, destaca la legibilidad y flexibilidad de Ruby.
-
¿Por qué Ruby en lugar de Bash?
- Ruby ofrece tipos de datos claros (enteros, punto flotante, cadenas, arreglos, hashes, etc.), lo que mejora la legibilidad del código.
- Para usuarios de macOS, si tienen instalado homebrew, Ruby incluido por defecto lo vuelve especialmente práctico.
- Ruby se aprovecha útilmente en scripts de compilación y automatización como CocoaPod y Fastlane.
- Permite manejar fácilmente varios formatos de datos como JSON, CSV y YAML mediante bibliotecas integradas.
-
Escribir scripts Ruby One-Liner
- Los scripts de una sola línea pueden ejecutarse con el formato
ruby -e "<expression>". - Se puede recibir y procesar la salida de otras herramientas CLI usando pipes y redirección.
- La opción
-rpermite cargar de antemano las bibliotecas necesarias para ampliar funcionalidades.
- Los scripts de una sola línea pueden ejecutarse con el formato
-
Usarlo en combinación con otras herramientas CLI
- Al combinar Ruby con AWS CLI, Git, GitHub CLI, jq y curl, se puede maximizar la fortaleza de funciones puntuales.
- Ejemplo de procesamiento de datos JSON:
- Después de llamar una API con
curl, se parsean los datos con la biblioteca JSON de Ruby y se imprime un campo específico (por ejemplo,title).
- Después de llamar una API con
- Ejemplo de procesamiento de datos YAML:
- Tras leer un archivo con
cat config.yaml, se parsea con la biblioteca YAML de Ruby para extraer un valor de configuración específico.
- Tras leer un archivo con
- La salida de herramientas CLI puede reprocesarse con Ruby para construir flujos de automatización más flexibles.
-
Procesamiento de datos no estructurados (ejemplo con Git Log)
- No todos los datos vienen estructurados como JSON, CSV o YAML.
- Con las expresiones regulares y capacidades de procesamiento de texto de Ruby, se pueden leer logs y mensajes del sistema línea por línea para extraer la información necesaria.
- Ejemplo de script con Git Log:
- Extrae un log de commits de una línea con
git log --oneline #{file}. - Permite seleccionar interactivamente el log deseado con
gum choose --limit 100. - Extrae el hash del commit de cada log seleccionado y muestra el detalle de cambios con
git show. - Finalmente, reconstruye y muestra los logs seleccionados en forma de checklist.
- Extrae un log de commits de una línea con
-
Cierre
- Al combinar herramientas CLI con scripts en Ruby, se pueden crear potentes herramientas de automatización con simples combinaciones de comandos.
- Es posible automatizar eficientemente el procesamiento complejo de datos, el análisis de logs y tareas de control de versiones para maximizar la productividad.
- Un comienzo pequeño puede generar grandes cambios, y se anima a cada quien a iniciar su propio side project.
- Como referencia, Perl también es útil, y materiales como Perl One-Liners Guide pueden servir de ayuda.
Aún no hay comentarios.