#!/bin/bash
## url_base : base url to use for query-string arguments
url_base="http://www.deutschestextarchiv.de/demo/cab/query";
if test "$#" -eq 0 -o "$1" = "-h" -o "$1" = "--help" ; then
cat <<EOF >&2
Usage: $0 URL_OR_QUERY_STRING INFILE [CURL_ARGS]
Examples:
$0 "${url_base}?a=default&fmt=json" FILE.json -o out.json
$0 "?a=default&fmt=json" FILE.json -o out.json
EOF
exit 1
fi
url="$1"; shift
infile="$1"; shift;
##-- prepend base URL if required
case "$url" in
"?"*)
url="${url_base}${url}"
;;
*)
;;
esac
##-- guess content type
case "$infile" in
*xml|*XML)
ctype="text/xml; charset=utf8"
;;
*tei|*TEI)
ctype="text/tei+xml; charset=utf8"
;;
*tcf|*TCF)
ctype="text/tcf+xml; charset=utf8"
;;
*json|*JSON)
ctype="application/json; charset=utf8"
;;
*yaml|*YAML|*yml|*YML)
ctype="text/x-yaml; charset=utf8"
;;
*bin|*BIN|*sto|*STO)
ctype="application/octet-stream"
;;
*)
ctype="text/plain; charset=utf8"
;;
esac
exec curl -X POST -sSH "Content-Type: $ctype" --data-binary @"$infile" -L --post301 --post302 --post303 "$@" "$url"