#!/bin/bash
set -e
set -o pipefail
if ! curl -fsS --max-time 10 -o /dev/null "http://us-east-1.ec2.archive.ubuntu.com/ubuntu/dists/$(lsb_release -cs)/Release"; then
echo "Regional apt mirror is unhealthy, falling back to archive.ubuntu.com"
sudo sed -i 's|//[a-z0-9-]*\.ec2\.archive\.ubuntu\.com|//archive.ubuntu.com|g' \
/etc/apt/sources.list /etc/apt/sources.list.d/*.sources /etc/apt/sources.list.d/*.list 2>/dev/null || true
fi
curl -fsSL https://raw.githubusercontent.com/mne-tools/mne-tools/main/tools/setup_xvfb.sh | timeout 600 bash
if [[ $(lsb_release -rs) == "26.04" ]]; then
EXTRA_DEPS="libgvplugin-neato-layout8"
else
EXTRA_DEPS=""
fi
APT_OPTS="-o Acquire::Retries=3 -o Acquire::http::Timeout=30 -o Acquire::https::Timeout=30"
timeout 600 sudo apt install -y $APT_OPTS graphviz optipng python3-venv libxft2 ffmpeg libtirpc-dev $EXTRA_DEPS
timeout 600 sudo apt install -y $APT_OPTS r-base-dev
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
timeout 600 sudo apt install -y $APT_OPTS ./google-chrome-stable_current_amd64.deb
python -m venv ~/python_env
echo "set -e" >> $BASH_ENV
echo "set -o pipefail" >> $BASH_ENV
echo "export XDG_RUNTIME_DIR=/tmp/runtime-circleci" >> $BASH_ENV
echo "export MNE_FULL_DATE=true" >> $BASH_ENV
echo "export MNE_3D_BACKEND=pyvistaqt" >> $BASH_ENV
echo "export MNE_QT_BACKEND=PySide6" >> $BASH_ENV
echo "export MNE_BROWSER_BACKEND=qt" >> $BASH_ENV
echo "export MNE_BROWSER_PRECOMPUTE=false" >> $BASH_ENV
echo "export MNE_ADD_CONTRIBUTOR_IMAGE=true" >> $BASH_ENV
echo "export MNE_REQUIRE_RELATED_SOFTWARE_INSTALLED=true" >> $BASH_ENV
echo "export NUMBA_CACHE_DIR=$HOME/.cache/mne-numba" >> $BASH_ENV
echo "export NUMBA_CPU_NAME=generic" >> $BASH_ENV
echo "export NUMBA_CPU_FEATURES=" >> $BASH_ENV
echo "export PATH=~/.local/bin/:$PATH" >> $BASH_ENV
echo "export DISPLAY=:99" >> $BASH_ENV
echo "source ~/python_env/bin/activate" >> $BASH_ENV
mkdir -p ~/.local/bin
ln -s ~/python_env/bin/python ~/.local/bin/python
echo "BASH_ENV:"
cat $BASH_ENV
mkdir -p ~/mne_data
mkdir -p ~/.cache/mne-numba
touch pattern.txt