#!/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/codeql" fi mkdir -p "${out_dir}" script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" analysis_out="$(mktemp -p "${out_dir}" codeql-results-XXXX.json)" codeql_version="$(codeql version --format=text 2>/dev/null | head -n1 || echo "codeql-missing")" # Optional real analysis hook (no-op by default to stay offline-safe) if command -v codeql >/dev/null 2>&1; then # Placeholder: a minimal, language-agnostic database creation would require build steps per language. # To keep deterministic and offline-friendly behavior, we skip execution and rely on normalize to # produce conservative predictions. Users can replace this block with real CodeQL invocations. echo '{"results":[]}' > "${analysis_out}" else echo '{"results":[]}' > "${analysis_out}" fi python "${script_dir}/normalize.py" \ --case "${case_dir}/case.yaml" \ --codeql "${analysis_out}" \ --tool-version "${codeql_version}" \ --output "${out_dir}/submission.json" echo "submission written: ${out_dir}/submission.json"