Files
jmespath-playground/bin/upload-jmespath

59 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
JMESPATH_PLAYGROUND_API_URL="http://localhost:3000" # May be set in bash profile
JMESPATH_PLAYGROUND_API_KEY="" # Required if not localhost
JSON_FILE="-"
function usage() {
echo "Usage: $0 [--api-url <url>] [--json-file <file>]"
echo
echo "Options:"
echo " --api-url <url> The base URL of the JMESPath Playground API (default: http://localhost:3000)"
echo " --api-key <key> The API key for authentication (required if not localhost)"
echo " --json-file <file> The JSON file to upload (default: stdin if not specified)"
echo " -h, --help Show this help message and exit"
echo
echo "Environment Variables:"
echo " JMESPATH_PLAYGROUND_API_URL Can be used to set the API URL"
echo " JMESPATH_PLAYGROUND_API_KEY Can be used to set the API key"
}
while [[ $# -gt 0 ]]; do
case $1 in
--api-url)
JMESPATH_PLAYGROUND_API_URL="$2"
shift 2
;;
--api-key)
JMESPATH_PLAYGROUND_API_KEY="$2"
shift 2
;;
--json-file)
JSON_FILE="$2"
shift 2
;;
-h|--help)
usage
exit 0
;;
*)
echo "ERROR: Unknown argument: $1"
usage
exit 1
;;
esac
done
ADD_HEADERS+=("-H" "X-API-Key: $JMESPATH_PLAYGROUND_API_KEY")
# Send the POST request
curl -s -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
"${ADD_HEADERS[@]}" \
--data @${JSON_FILE} \
"$JMESPATH_PLAYGROUND_API_URL/api/v1/upload"