Verschiedene Groovy Skripte
ulrich
2018-01-14 59b8c6602f8b8e9f380e6645381957222b5543fb
src/kleiner.sh
@@ -1,3 +1,53 @@
#!/bin/sh
# Dieses Skript ruft Docker zum Start eines Containers mit Groovy und startet
# darin das Groovy-Skript bilder.groovy.
#
# Nach jedem solchen Durchlauf wird der Container wieder geloescht.
#
# Besagtes Docker Kommando reicht das augenblickliche Arbeitsverzeichnis
# der Maschine, auf der Docker laeuft, als Pfad /scripts an den
# Docker Container. Auf diese Weise koennen Bilder im Dateisystem der Maschine,
# auf der Docker laeuft, verwendet werden.
#
# Aufruf mit ./kleiner.sh [groesse] [qualitaet] [eingangsordner] [ausgangsordner]
# Beispiel ./kleiner.sh 1200 0.75 /scripts/in /scripts/out
#
# Liegen dieses Skript (kleiner.sh) und das Groovy-Skript bilder.groovy
# im Pfad /scripts und enthält dieser Pfad die Verzeichnisse in und out
# wird mit dem Aufruf von kleiner.sh das Groovy-Skript ausgefuehrt.
#
# Der Aufruf mit den im Beispiel oben angegebenen Parametern bewirkt, dass alle
# Bilddateien in /scripts/in auf eine Laenge von 1.200 Bildpunkten entlang
# der laengsten Kante verkleinert, in der Qualitaet auf 75% des Originals
# verringert und in /scripts/out abgelegt werden.
#
#
# Erlaeuterung des unten stehenden Docker-Kommandos
# -------------------------------------------------
#
# Die Option -v im docker run Kommando verbindet einen Ablageort mit einem
# Ordnernamen nach dem Schema [Ablageort]:[Ordnername]
#
# Die Option -w setzt das Arbeitsverzeichnis auf einen Ordner
#
# Die Kombination aus -v und -w im Kommando unten tut so, als gaebe es im
# Docker-Container einen Ordner /scripts und laesst diesen auf das
# Arbeitsverezichnis der lokalen Maschine verweisen, auf der Docker laeuft.
# Dieses Verzeichnis wird dann das Arbeitsverzeichnis fuer den Docker-Container
#
# Der Ausdruck "$PWD" ist ein Platzhalter (Print Working Directory) und
# bewirkt, dass an dessen Stelle der Pfad des aktuellen
# Arbeitsverzeichnisses ausgegeben wird
#
# --name groovy bedeutet Docker einen Container namens groovy anzulegen
# --rm bedeutet Docker den Container nach der Ausführung wieder zu entfernen
# groovy:alpine gibt Docker die Ablaufumgebung an, die dem Container zugrunde
#             liegen soll
# groovy bilder.groovy ist schliesslich das Kommando, das der Container
#          ausfuehren soll. Es soll also das Skript bilder.groovy in der
#          Ablaufumgebung Groovy ausgefuehrt werden
# dahinter werden die Parameter weiter gereicht, die diesem Skript (kleiner.sh)
# uebergeben wurden
docker run --rm -v "$PWD":/scripts -w /scripts --name groovy groovy:alpine groovy bilder.groovy $1 $2 $3
docker run --rm -v "$PWD":/scripts -w /scripts --name groovy groovy:alpine groovy bilder.groovy $1 $2 $3 $4