-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTaskfile.yml
115 lines (105 loc) · 3.9 KB
/
Taskfile.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# https://taskfile.dev
version: '3'
vars:
DIR: '{{default "example" .DIR}}'
MEMORY: '{{default "2G" .MEMORY}}'
PORT: '{{default "3333" .PORT}}'
tasks:
default:
cmds:
- task: main
main:
desc: Internformat aufbereiten für Online-Katalog
cmds:
- |
# Zeitstempel zu Beginn
mkdir -p .task/timer; date -u +%s.%N > ".task/timer/{{.TASK}}"
- |
# Arbeitsverzeichnis leeren
rm -r "{{.DIR}}/tmp" 2> /dev/null || true; mkdir -p "{{.DIR}}/tmp"
- |
# Konfigurationsdateien ins Arbeitsverzeichnis kopieren
cp -r "config" "{{.DIR}}/tmp/"
- |
# orcli das script main.sh ausführen lassen
DIR={{.DIR}} openrefine/orcli run "scripts/main.sh" --memory "{{.MEMORY}}" --port "{{.PORT}}"
- |
# Kopie der Konfigurationsdateien im Arbeitsverzeichnis löschen
rm -r "{{.DIR}}/tmp/config" 2> /dev/null || true
- |
# Vorheriges Ergebnis überschreiben
rm -r "{{.DIR}}/output" 2> /dev/null || true; mv "{{.DIR}}/tmp" "{{.DIR}}/output"
- |
# Laufzeit berechnen
>&2 echo "{{.TASK}} run time: $(bc <<<"$(date -u +%s.%N)-$(cat ".task/timer/{{.TASK}}")") seconds"
sources:
- '{{.DIR}}/input/**'
- scripts/main.sh
- 'config/*.*'
- 'config/main/**/**'
generates:
- '{{.DIR}}/output/**'
preconditions:
- sh: test -f openrefine/orcli
msg: "orcli not found; try task install"
- sh: test -f openrefine/refine
msg: "OpenRefine not found; try task install"
- command -v jq
- command -v curl
- command -v java
- test -d {{.DIR}}
dev:
desc: Entwicklungsmodus (interaktiv)
cmds:
- |
# Arbeitsverzeichnis leeren
rm -r "{{.DIR}}/tmp" 2> /dev/null || true; mkdir -p "{{.DIR}}/tmp"
- |
# Konfigurationsdateien ins Arbeitsverzeichnis kopieren
cp -r "config" "{{.DIR}}/tmp/"
- |
# orcli das script main.sh im interaktiven Modus ausführen lassen
DIR={{.DIR}} openrefine/orcli run "scripts/main.sh" --memory "{{.MEMORY}}" --port "{{.PORT}}" --interactive
- |
# Arbeitsverzeichnis löschen
rm -r "{{.DIR}}/tmp" 2> /dev/null || true
preconditions:
- sh: test -f openrefine/orcli
msg: "orcli not found; try task install"
- sh: test -f openrefine/refine
msg: "OpenRefine not found; try task install"
- command -v jq
- command -v curl
- command -v java
- test -d {{.DIR}}
solr:
desc: Indexierung in Solr testen
cmds:
- solr/bin/solr delete -c dla &> /dev/null || true
- solr/bin/solr stop &> /dev/null || true
- rm -r "solr/server/solr/dla" 2> /dev/null || true; mkdir -p "solr/server/solr/dla"
- cp config/solr/* solr/server/solr/dla/
- touch solr/server/solr/dla/core.properties solr/server/solr/dla/stopwords.txt solr/server/solr/dla/synonyms.txt
- solr/bin/solr start -a "-XX:+IgnoreUnrecognizedVMOptions" && sleep 1
- solr/bin/post -c dla example/output/*.jsonl
install:
desc: install all requirements into subdirectories
cmds:
- task: install_openrefine
- task: install_orcli
- task: install_solr
install_openrefine:
cmds:
- mkdir -p openrefine
- wget --no-verbose -O openrefine.tar.gz https://github.com/OpenRefine/OpenRefine/releases/download/3.8.7/openrefine-linux-3.8.7.tar.gz
- tar -xzf openrefine.tar.gz -C openrefine --strip 1 && rm openrefine.tar.gz
install_orcli:
cmds:
- mkdir -p openrefine
- wget --no-verbose -O openrefine/orcli https://github.com/opencultureconsulting/orcli/releases/download/v0.4.1/orcli
- chmod +x openrefine/orcli
install_solr:
cmds:
- mkdir -p solr
- wget -q --show-progress -O solr.tgz https://archive.apache.org/dist/lucene/solr/7.7.3/solr-7.7.3.tgz
- tar -xzf solr.tgz -C solr --strip 1 && rm solr.tgz