#!/usr/bin/env sh
# Source this once per shell session before running AnyData experiments.
# Usage:
#   source setup_experiment_env.sh

# Resolve repo root based on this script location.
# When sourced in bash, $0 points to the shell binary, so prefer BASH_SOURCE.
_SCRIPT_SOURCE="$0"
if [ -n "${BASH_VERSION:-}" ] && [ -n "${BASH_SOURCE:-}" ]; then
    _SCRIPT_SOURCE="${BASH_SOURCE}"
fi
_REPO_ROOT="$(cd "$(dirname "${_SCRIPT_SOURCE}")" && pwd)"

# Required Python paths for local packages.
export PYTHONPATH="${_REPO_ROOT}:${_REPO_ROOT}/externals/camviz:${_REPO_ROOT}/externals/webdataset:${PYTHONPATH}"

# Optional convenience envs used in scripts/logging.
export ANYDATA_ROOT="${_REPO_ROOT}"

printf 'Environment ready.\n'
printf 'ANYDATA_ROOT=%s\n' "${ANYDATA_ROOT}"
printf 'PYTHONPATH contains: %s, externals/camviz, externals/webdataset\n' "${_REPO_ROOT}"

unset _REPO_ROOT
unset _SCRIPT_SOURCE

# If run as a script, exports won't persist in caller shell.
# Detect "sourced" mode in POSIX sh.
(return 0 2>/dev/null)
if [ $? -ne 0 ]; then
    printf 'Note: run with "source setup_experiment_env.sh" (or ". setup_experiment_env.sh") to persist env vars.\n'
fi