blob: ac7eec44127c84db6aa23ba4c8bade454e327c46 [file] [log] [blame]
Marc Kupietz1a422662024-03-16 09:34:10 +01001#!/bin/bash
2
3usage() { echo "Usage: $0 [-r | -s <server>] [-m <model>] [-l] < c.conllu > c.ud.conllu" 1>&2; exit 1; }
4
5LOCAL_SERVER=http://compute.ids-mannheim.de:8001
6LINDAT_SERVER=https://lindat.mff.cuni.cz/services/udpipe/api
7
8server=${LOCAL_SERVER}
9model=de_hdt
10
11udpipe_server_is_operational () {
12 [ $(curl -s -o /dev/null -w "%{http_code}" ${1}/models) -eq 200 ]
13}
14
15if ! udpipe_server_is_operational $server; then
16 echo "WARING: Local server $server is not responding, defaulting to LINDAT server." >&2
17 server=$LINDAT_SERVER
18fi
19
20while getopts "s:m:rhl" o; do
21 case "${o}" in
22 r)
23 server=${LINDAT_SERVER}
24 ;;
25 s)
26 server=${OPTARG}
27 ;;
28 m)
29 model=${OPTARG}
30 ;;
31 l)
32 curl ${server}/models
33 exit 0
34 ;;
35 *)
36 usage
37 ;;
38 esac
39done
40shift $((OPTIND-1))
41
42if ! udpipe_server_is_operational $server; then
43 echo "ERROR: Udpipe server $server is not operational." >&2
44 exit -1
45fi
46
47idx=1
48while [[ $idx -gt 0 ]]; do
49 idx=0
50 while IFS= read -r line && ( [[ $idx -lt 120000 ]] || ! [[ -z "$line" ]] ); do
51 $(( idx++ )) 2> /dev/null
52 echo "$line"
53# echo "$line" >&2
54 done > >(curl --silent -F data=@- -F model=${model} -F tagger= -F parser= ${server}/process | jq -j .result )
55done