From 81e55bd78445082e6c2d9e3aa3a8ea5e73ca2f14 Mon Sep 17 00:00:00 2001 From: Felix Lohmeier Date: Tue, 19 Jan 2021 10:50:55 +0100 Subject: [PATCH] Dokumentation optimieren und vereinheitlichen --- README.md | 13 +++++++++---- Taskfile.yml | 4 ++++ tasks/siegen.yml | 16 +++++++++------- tasks/wuppertal.yml | 14 +++++++------- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 3c691bc..62cb250 100644 --- a/README.md +++ b/README.md @@ -84,18 +84,24 @@ Harvesting von OAI-PMH-Schnittstellen und Transformation in METS/MODS für das P ## Nutzung -* Alle Datenquellen harvesten und transformieren (parallelisiert) +* Alle Datenquellen harvesten, transformieren und validieren (parallelisiert) ``` - task default + task ``` -* Eine Datenquelle harvesten und transformieren +* Eine Datenquelle harvesten, transformieren und validieren ``` task siegen:default ``` +* Zwei Datenquellen harvesten, transformieren und validieren (parallelisiert) + + ``` + task --parallel siegen:default wuppertal:default + ``` + * Links einer Datenquelle überprüfen ``` @@ -116,7 +122,6 @@ Harvesting von OAI-PMH-Schnittstellen und Transformation in METS/MODS für das P ## Konfiguration -* Umgebungsvariablen in [Taskfile.yml](Taskfile.yml) * Workflow für die Datenquellen in [tasks](tasks) * Beispiel: [tasks/siegen.yml](tasks/siegen.yml) * OpenRefine-Transformationsregeln in [rules](rules) diff --git a/Taskfile.yml b/Taskfile.yml index fd0083a..4faac7f 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -29,6 +29,10 @@ tasks: msg: "requirement OpenRefine missing" - sh: test -x "$OPENREFINE_CLIENT" msg: "requirement openrefine-client missing" + - sh: test -n "$(command -v curl)" + msg: "requirement curl missing" + - sh: test -n "$(command -v xmllint)" + msg: "requirement xmllint missing" deps: - task: wuppertal:default - task: siegen:default diff --git a/tasks/siegen.yml b/tasks/siegen.yml index ff74cfa..c7ad566 100644 --- a/tasks/siegen.yml +++ b/tasks/siegen.yml @@ -4,7 +4,7 @@ version: '3' tasks: default: - desc: harvesten und transformieren + desc: OPUS Siegen harvesten und transformieren deps: [harvest] cmds: - task: refine @@ -15,7 +15,6 @@ tasks: - task: diff harvest: - desc: nur harvesten dir: data/siegen/harvest cmds: - METHA_DIR=$PWD metha-sync --format xMetaDissPlus https://dspace.ub.uni-siegen.de/oai/request @@ -23,10 +22,10 @@ tasks: refine: dir: data/siegen/refine - ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 + ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 env: PORT: 3334 - RAM: 8G + RAM: 4G PROJECT: siegen cmds: # OpenRefine starten @@ -86,7 +85,7 @@ tasks: # 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 # Prüfen, ob Mindestanzahl von 1250 Datensätzen generiert wurde - - if (( 1250 > $(grep -c recordIdentifier siegen.txt) )); then echo 1>&2 "Unerwartet geringe Anzahl an Datensätzen in $PWD/wuppertal.txt!" && exit 1; fi + - if (( 1250 > $(grep -c recordIdentifier siegen.txt) )); then echo 1>&2 "Unerwartet geringe Anzahl an Datensätzen in $PWD/siegen.txt!" && exit 1; fi split: dir: data/siegen/split @@ -147,8 +146,9 @@ tasks: cmds: # Links extrahieren - xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt - # http status code aller Links ermitteln + # http status code aller Links ermitteln - curl --silent --head --write-out "%{http_code} %{url_effective}\n" $(while read line; do echo "-o /dev/null $line"; done < links.txt) > linkcheck.log + - rm -rf links.txt # 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 sources: @@ -157,6 +157,8 @@ tasks: - linkcheck.log delete: - desc: harvesting cache löschen + desc: cache löschen cmds: - rm -rf data/siegen/harvest + - rm -rf data/siegen/refine + - rm -rf data/siegen/split diff --git a/tasks/wuppertal.yml b/tasks/wuppertal.yml index e3122a9..33664bf 100644 --- a/tasks/wuppertal.yml +++ b/tasks/wuppertal.yml @@ -4,7 +4,7 @@ version: '3' tasks: default: - desc: harvesten und transformieren + desc: Elpub Wuppertal harvesten und transformieren deps: [harvest] cmds: - task: refine @@ -15,7 +15,6 @@ tasks: - task: diff harvest: - desc: nur harvesten dir: data/wuppertal/harvest cmds: - METHA_DIR=$PWD metha-sync --format oai_dc http://elpub.bib.uni-wuppertal.de/servlets/OAIDataProvider @@ -23,10 +22,10 @@ tasks: refine: dir: data/wuppertal/refine - ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 + ignore_error: true # provisorisch verwaisten Java-Prozess bei Exit vermeiden https://github.com/go-task/task/issues/141 env: PORT: 3335 - RAM: 8G + RAM: 4G PROJECT: wuppertal cmds: # OpenRefine starten @@ -62,8 +61,6 @@ tasks: - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/hbz.json $PROJECT # Sortierung mods:nonSort für das erste Element in dc:title - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/nonsort.json $PROJECT -#TODO # Links prüfen: HTTP status code ermitteln (z.B. 200) -#TODO - $OPENREFINE_CLIENT -P $PORT --apply ../../../rules/wuppertal/linkcheck.json $PROJECT # Export in METS:MODS mit Templating - | $OPENREFINE_CLIENT -P $PORT --export --template "$(< ../../../rules/wuppertal/template.txt)" --rowSeparator " @@ -153,6 +150,7 @@ tasks: - xmllint --xpath '//@*[local-name(.) = "href"]' split/*.xml | cut -d '"' -f2 > links.txt # http status code aller Links ermitteln - curl --silent --head --write-out "%{http_code} %{url_effective}\n" $(while read line; do echo "-o /dev/null $line"; done < links.txt) > linkcheck.log + - rm -rf links.txt # 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 sources: @@ -161,6 +159,8 @@ tasks: - linkcheck.log delete: - desc: harvesting cache löschen + desc: cache löschen cmds: - rm -rf data/wuppertal/harvest + - rm -rf data/wuppertal/refine + - rm -rf data/wuppertal/split