-
Überblick über den Artikel
- Der Artikel stellt verschiedene Tricks vor, mit denen sich durch die Kombination von Bash-Skripten und Ruby die Automatisierung von CLI-Tools umsetzen lässt.
- Auch andere Skriptsprachen sind möglich, betont wird jedoch die Lesbarkeit und Flexibilität von Ruby.
-
Warum Ruby statt Bash?
- Ruby bietet klare Datentypen (Ganzzahlen, Gleitkommazahlen, Strings, Arrays, Hashes usw.) und erhöht dadurch die Lesbarkeit des Codes.
- Für macOS-Nutzer ist Ruby besonders nützlich, weil es bei installiertem Homebrew praktisch standardmäßig verfügbar ist.
- Ruby wird in Build- und Automatisierungsskripten wie CocoaPod und Fastlane sinnvoll eingesetzt.
- Unterschiedliche Datenformate wie JSON, CSV und YAML lassen sich mit den eingebauten Bibliotheken leicht verarbeiten.
-
Ruby-One-Liner schreiben
- Einzeilige Skripte lassen sich im Format
ruby -e "<expression>"ausführen. - Über Pipes und Redirects können die Ergebnisse anderer CLI-Tools eingelesen und verarbeitet werden.
- Mit der Option
-rlassen sich benötigte Bibliotheken vorab laden und der Funktionsumfang erweitern.
- Einzeilige Skripte lassen sich im Format
-
Mit anderen CLI-Tools kombinieren
- In Kombination mit AWS CLI, Git, GitHub CLI, jq, curl usw. kann Ruby die Stärken einzelner Werkzeuge maximal ausnutzen.
- Beispiel für JSON-Datenverarbeitung:
- Nach einem API-Aufruf mit
curlwerden die Daten mit der JSON-Bibliothek von Ruby geparst und bestimmte Felder (z. B.title) ausgegeben.
- Nach einem API-Aufruf mit
- Beispiel für YAML-Datenverarbeitung:
- Nach dem Einlesen einer Datei mit
cat config.yamlwird sie mit der YAML-Bibliothek von Ruby geparst, um bestimmte Konfigurationswerte zu extrahieren.
- Nach dem Einlesen einer Datei mit
- Die Ergebnisse von CLI-Tools lassen sich in Ruby weiterverarbeiten, um flexiblere Automatisierungs-Workflows aufzubauen.
-
Unstrukturierte Daten verarbeiten (Beispiel Git-Log)
- Nicht alle Daten liegen strukturiert wie JSON, CSV oder YAML vor.
- Mit den regulären Ausdrücken und Textverarbeitungsfunktionen von Ruby lassen sich Logs, Systemmeldungen usw. zeilenweise einlesen und die benötigten Informationen extrahieren.
- Beispielskript für Git-Log:
- Mit
git log --oneline #{file}wird ein einzeiliges Commit-Log extrahiert. - Mit
gum choose --limit 100wird das gewünschte Log interaktiv ausgewählt. - Aus jedem ausgewählten Log wird der Commit-Hash extrahiert und mit
git showdie detaillierte Änderungshistorie ausgegeben. - Abschließend werden die ausgewählten Logs in Form einer Checkliste neu zusammengestellt und ausgegeben.
- Mit
-
Fazit
- Durch die Kombination von CLI-Tools und Ruby-Skripten lassen sich mit einfachen Befehlsfolgen leistungsstarke Automatisierungswerkzeuge bauen.
- Komplexe Datenverarbeitung, Log-Analyse und Aufgaben rund um Versionsverwaltung lassen sich effizient automatisieren und die Produktivität deutlich steigern.
- Kleine Anfänge können große Veränderungen bewirken, und der Artikel empfiehlt, ein eigenes Side-Project zu starten.
- Perl ist übrigens ebenfalls nützlich; Materialien wie der Perl One-Liners Guide können hilfreich sein.
Noch keine Kommentare.