Developer

Aktuelle Themen

Automatisierung von interaktiven Skripten mit ‚expect‘

Der ein oder andere Entwickler stand sicherlich schon vor dem Problem, dass ein Skript, welches Eingaben vom Benutzer verlangt, automatisiert ausgeführt werden soll.

Während der Durchführung eines Kundenprojekts hatten wir folgende Herausforderung:

Beim Bauen eines Docker Images wird ein Skript ausgeführt. Das Skript entpackt eine vom Kunden gelieferte Binary, welche .run Skripte enthält. Eines dieser .run Skripte wird im Anschluss ausgeführt und verlangt 3 Nutzereingaben. Diese 3 Eingaben konnten wir nicht überspringen.

Wir konnten die .run Skripte in diesem Fall nicht anpassen, um die 3 Eingabeaufforderungen zu entfernen, da die .run Skripte zunächst in der vom Kunden gelieferten Binary steckten und erst entpackt werden mussten, was alles automatisiert ablief.

Das Expect-Command

Die Lösung hat das Kommandozeilentool „expect“ gebracht.

Mit Expect lassen sich interaktive Skripte automatisieren. Man schreibt hierzu ein Expect-Skript, welches das eigentliche Skript ausführt. Das Expect-Skript wartet dann auf bestimmte Ausgaben des ausgeführten Skripts und antwortet mit entsprechend definierten Eingaben:

Auf diese einfache Art und Weise konnten wir den Aufruf automatisieren. Der hier geschilderte Fall ist eher trivial, Expect bietet jedoch noch viele weitere Möglichkeiten, siehe hier.

Erfahrungsbericht Hacktoberfest-Treffen

Diesen Monat besuchte ich ein Hacktoberfest in Frankfurt und möchte in diesem Blogbeitrag meine  Eindrücke schildern. Die Aktion „Hacktoberfest“ wurde vor fünf Jahren von DigitalOcean ins Leben gerufen und läuft über den gesamten Oktober. Während des Oktobers gibt es von Teilnehmern organisierte Treffen, um gemeinsam an Open Source Projekten zu arbeiten. Das angestrebte Ziel der Aktion war und ist es, der Open Source Community etwas zurück zu geben. Dieses Jahr bekommen die ersten 50 000 Teilnehmer, die mindestens fünf Pull-Requests im Oktober erstellt haben, ein T-Shirt. Zusätzlich zu DigtilOcean sind auch GitHub und twillio an der diesjährigen Aktion beteiligt.

Mehr

Java 11 kurz angetestet

Da diese Woche Java 11 erschienen ist (wie kürzlich hier berichtet), konnte ich es nicht lassen, ein klein wenig damit herumzuspielen.

Insbesondere war ich neugierig auf JEP-330, also der Möglichkeit, Java-Dateien direkt auszuführen zu können, ohne sie vorher kompilieren zu müssen. Voraussetzung ist, dass sich das komplette Programm innerhalb einer einzigen Java-Datei befindet.Mehr