58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
WORKSPACE="kemals-workspace-kbc8l"
|
|
PROJECT="electric-meter-detection-o4tfi"
|
|
VERSION="1"
|
|
FORMAT="yolov8"
|
|
DATASET_DIR="examples/meter-detection/data/electric-meter-detection"
|
|
|
|
if [[ -z "${ROBOFLOW_API_KEY:-}" ]]; then
|
|
echo "ROBOFLOW_API_KEY is required." >&2
|
|
echo "Run: export ROBOFLOW_API_KEY=your-roboflow-api-key" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v curl >/dev/null 2>&1; then
|
|
echo "curl is required." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! command -v unzip >/dev/null 2>&1; then
|
|
echo "unzip is required." >&2
|
|
exit 1
|
|
fi
|
|
|
|
TMP_DIR="$(mktemp -d)"
|
|
trap 'rm -rf "${TMP_DIR}"' EXIT
|
|
|
|
API_URL="https://api.roboflow.com/${WORKSPACE}/${PROJECT}/${VERSION}/${FORMAT}?api_key=${ROBOFLOW_API_KEY}"
|
|
RESPONSE_FILE="${TMP_DIR}/roboflow-export.json"
|
|
ZIP_FILE="${TMP_DIR}/dataset.zip"
|
|
|
|
echo "Requesting Roboflow export link..."
|
|
curl -fsSL "${API_URL}" -o "${RESPONSE_FILE}"
|
|
|
|
DOWNLOAD_URL="$(
|
|
sed -n 's/.*"link"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "${RESPONSE_FILE}" \
|
|
| head -n 1 \
|
|
| sed 's#\\/#/#g; s#\\u0026#\&#g'
|
|
)"
|
|
|
|
if [[ -z "${DOWNLOAD_URL}" ]]; then
|
|
echo "Could not find export.link in Roboflow response." >&2
|
|
echo "Response:" >&2
|
|
cat "${RESPONSE_FILE}" >&2
|
|
exit 1
|
|
fi
|
|
|
|
mkdir -p "${DATASET_DIR}"
|
|
|
|
echo "Downloading dataset ZIP..."
|
|
curl -fL "${DOWNLOAD_URL}" -o "${ZIP_FILE}"
|
|
|
|
echo "Extracting dataset..."
|
|
unzip -q -o "${ZIP_FILE}" -d "${DATASET_DIR}"
|
|
|
|
echo "Downloaded dataset to ${DATASET_DIR}"
|