#!/usr/bin/env bash set -euo pipefail case_dir="${1:-}" out_dir="${2:-}" if [[ -z "${case_dir}" ]]; then echo "usage: run_case.sh [output_dir]" >&2 exit 1 fi case_dir="$(cd "${case_dir}" && pwd)" if [[ -z "${out_dir}" ]]; then out_dir="${case_dir}/baselines/semgrep" fi mkdir -p "${out_dir}" script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" rules="${script_dir}/rules.yaml" semgrep_out="$(mktemp -p "${out_dir}" semgrep-results-XXXX.json)" export SEMGREP_SEND_TELEMETRY=0 export SEMGREP_ENABLE_VERSION_CHECK=0 semgrep_version="$(semgrep --version 2>/dev/null | head -n1 || echo "semgrep-missing")" # Run semgrep; if semgrep is unavailable, continue with empty results for deterministic output. if command -v semgrep >/dev/null 2>&1; then semgrep --config "${rules}" --json --quiet "${case_dir}" > "${semgrep_out}" || true else echo '{"results":[]}' > "${semgrep_out}" fi python "${script_dir}/normalize.py" \ --case "${case_dir}/case.yaml" \ --semgrep "${semgrep_out}" \ --tool-version "${semgrep_version}" \ --output "${out_dir}/submission.json" echo "submission written: ${out_dir}/submission.json"