fix go-task preconditions funktioniert nicht zuverlässig #13

This commit is contained in:
Felix Lohmeier 2021-01-19 19:23:26 +01:00
parent 391fef2137
commit 45061757f8
1 changed files with 7 additions and 15 deletions

View File

@ -40,46 +40,42 @@ tasks:
check: check:
dir: data/{{.PROJECT}}/refine dir: data/{{.PROJECT}}/refine
cmds: cmds:
- test -n "{{.PROJECT}}"; test -n "{{.MINIMUM}}"
# Logdatei von OpenRefine auf Warnungen und Fehlermeldungen prüfen # Logdatei von OpenRefine auf Warnungen und Fehlermeldungen prüfen
- if grep -i 'exception\|error' openrefine.log; then echo 1>&2 "Logdatei $PWD/openrefine.log enthält Warnungen!" && exit 1; fi - if grep -i 'exception\|error' openrefine.log; then echo 1>&2 "Logdatei $PWD/openrefine.log enthält Warnungen!" && exit 1; fi
# Prüfen, ob Mindestanzahl von 1250 Datensätzen generiert wurde # Prüfen, ob Mindestanzahl von 1250 Datensätzen generiert wurde
- if (( {{.MINIMUM}} > $(grep -c recordIdentifier {{.PROJECT}}.txt) )); then echo 1>&2 "Unerwartet geringe Anzahl an Datensätzen in $PWD/{{.PROJECT}}.txt!" && exit 1; fi - if (( {{.MINIMUM}} > $(grep -c recordIdentifier {{.PROJECT}}.txt) )); then echo 1>&2 "Unerwartet geringe Anzahl an Datensätzen in $PWD/{{.PROJECT}}.txt!" && exit 1; fi
preconditions:
- test -n "{{.PROJECT}}"
- test -n "{{.MINIMUM}}"
split: split:
dir: data/{{.PROJECT}}/split dir: data/{{.PROJECT}}/split
cmds: cmds:
- test -n "{{.PROJECT}}"
# in Einzeldateien aufteilen # in Einzeldateien aufteilen
- csplit -q ../refine/{{.PROJECT}}.txt --suppress-matched '/<!-- SPLIT -->/' "{*}" - csplit -q ../refine/{{.PROJECT}}.txt --suppress-matched '/<!-- SPLIT -->/' "{*}"
# ggf. vorhandene XML-Dateien löschen # ggf. vorhandene XML-Dateien löschen
- rm -f *.xml - rm -f *.xml
# Identifier als Dateinamen # Identifier als Dateinamen
- for f in xx*; do mv "$f" "$(xmllint --xpath "//*[local-name(.) = 'recordIdentifier']/text()" "$f").xml"; done - for f in xx*; do mv "$f" "$(xmllint --xpath "//*[local-name(.) = 'recordIdentifier']/text()" "$f").xml"; done
preconditions:
- test -n "{{.PROJECT}}"
validate: validate:
dir: data/{{.PROJECT}} dir: data/{{.PROJECT}}
cmds: cmds:
- test -n "{{.PROJECT}}"
# Validierung gegen METS Schema # Validierung gegen METS Schema
- wget -q -nc https://www.loc.gov/standards/mets/mets.xsd - wget -q -nc https://www.loc.gov/standards/mets/mets.xsd
- xmllint --schema mets.xsd --noout split/*.xml > validate.log 2>&1 - xmllint --schema mets.xsd --noout split/*.xml > validate.log 2>&1
preconditions:
- test -n "{{.PROJECT}}"
zip: zip:
dir: data/{{.PROJECT}} dir: data/{{.PROJECT}}
cmds: cmds:
- test -n "{{.PROJECT}}"
# ZIP-Archiv mit Zeitstempel erstellen # ZIP-Archiv mit Zeitstempel erstellen
- zip -q -FS -j {{.PROJECT}}_{{.DATE}}.zip split/*.xml - zip -q -FS -j {{.PROJECT}}_{{.DATE}}.zip split/*.xml
preconditions:
- test -n "{{.PROJECT}}"
diff: diff:
dir: data/{{.PROJECT}} dir: data/{{.PROJECT}}
cmds: cmds:
- test -n "{{.PROJECT}}"
# Inhalt der beiden letzten ZIP-Archive vergleichen # Inhalt der beiden letzten ZIP-Archive vergleichen
- unzip -q -d old $(ls -t *.zip | sed -n 2p) - unzip -q -d old $(ls -t *.zip | sed -n 2p)
- unzip -q -d new $(ls -t *.zip | sed -n 1p) - unzip -q -d new $(ls -t *.zip | sed -n 1p)
@ -92,12 +88,11 @@ tasks:
status: status:
# Task nicht ausführen, wenn weniger als zwei ZIP-Archive vorhanden # Task nicht ausführen, wenn weniger als zwei ZIP-Archive vorhanden
- test -z $(ls -t *.zip | sed -n 2p) - test -z $(ls -t *.zip | sed -n 2p)
preconditions:
- test -n "{{.PROJECT}}"
linkcheck: linkcheck:
dir: data/{{.PROJECT}} dir: data/{{.PROJECT}}
cmds: cmds:
- test -n "{{.PROJECT}}"
# Links extrahieren # Links extrahieren
- xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt - xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt
# http status code aller Links ermitteln # http status code aller Links ermitteln
@ -105,14 +100,11 @@ tasks:
- rm -rf links.txt - rm -rf links.txt
# Logdatei auf status code != 2XX prüfen # Logdatei auf status code != 2XX prüfen
- if grep '^[^2]' linkcheck.log; then echo 1>&2 "Logdatei $PWD/linkcheck.log enthält problematische status codes!" && exit 1; fi - if grep '^[^2]' linkcheck.log; then echo 1>&2 "Logdatei $PWD/linkcheck.log enthält problematische status codes!" && exit 1; fi
preconditions:
- test -n "{{.PROJECT}}"
delete: delete:
dir: data/{{.PROJECT}} dir: data/{{.PROJECT}}
cmds: cmds:
- test -n "{{.PROJECT}}"
- rm -rf harvest - rm -rf harvest
- rm -rf refine - rm -rf refine
- rm -rf split - rm -rf split
preconditions:
- test -n "{{.PROJECT}}"