orcli/src/lib/post_export.sh

33 lines
1.1 KiB
Bash

# post to export-rows endpoint
# shellcheck shell=bash disable=SC2154
function post_export() {
local curloptions
for d in "$@"; do
curloptions+=("--data-urlencode")
curloptions+=("$d")
done
# support filtering result sets with facets
if [[ ${args[--mode]} == "records" ]]; then
mode="record-based"
else
mode="row-based"
fi
curloptions+=("--data-urlencode")
curloptions+=("engine={\"facets\":${args[--facets]},\"mode\":\"${mode}\"}")
# support file output
if [[ ${args[--output]} ]]; then
if ! mkdir -p "$(dirname "${args[--output]}")"; then
error "unable to create parent directory for ${args[--output]}"
fi
curloptions+=("--output" "${args[--output]}")
fi
# post
if ! curl -fs "${curloptions[@]}" "${OPENREFINE_URL}/command/core/export-rows$(get_csrf)"; then
error "exporting ${args[project]} failed!"
else
if [[ ${args[--output]} ]]; then
log "exported ${args[project]}" "file: ${args[--output]}" "lines: $(wc -l <"${args[--output]}")"
fi
fi
}