2025-05-17 19:46:23 -07:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null && pwd)"
|
|
|
|
|
cd $DIR
|
|
|
|
|
|
|
|
|
|
PLATFORM=$(uname -s)
|
|
|
|
|
|
|
|
|
|
echo "installing dependencies"
|
|
|
|
|
if [[ $PLATFORM == "Darwin" ]]; then
|
2025-05-25 09:40:00 -07:00
|
|
|
export HOMEBREW_NO_AUTO_UPDATE=1
|
2025-05-17 19:46:23 -07:00
|
|
|
brew install --cask gcc-arm-embedded
|
2025-05-19 19:40:50 -07:00
|
|
|
brew install python3 gcc@13
|
2025-05-17 19:46:23 -07:00
|
|
|
elif [[ $PLATFORM == "Linux" ]]; then
|
2025-07-19 16:13:51 -07:00
|
|
|
# for AGNOS since we clear the apt lists
|
|
|
|
|
if [[ ! -d /"var/lib/apt/" ]]; then
|
|
|
|
|
sudo apt update
|
|
|
|
|
fi
|
|
|
|
|
|
2025-05-17 19:46:23 -07:00
|
|
|
sudo apt-get install -y --no-install-recommends \
|
2025-07-19 16:13:51 -07:00
|
|
|
curl ca-certificates \
|
2025-05-17 19:46:23 -07:00
|
|
|
make g++ git libnewlib-arm-none-eabi \
|
2025-05-19 20:20:06 -07:00
|
|
|
libusb-1.0-0 \
|
2025-07-19 16:13:51 -07:00
|
|
|
gcc-arm-none-eabi \
|
|
|
|
|
python3-dev python3-pip python3-venv
|
2025-05-17 19:46:23 -07:00
|
|
|
else
|
|
|
|
|
echo "WARNING: unsupported platform. skipping apt/brew install."
|
|
|
|
|
fi
|
|
|
|
|
|
2025-05-19 21:19:41 -07:00
|
|
|
if ! command -v uv &>/dev/null; then
|
|
|
|
|
echo "'uv' is not installed. Installing 'uv'..."
|
|
|
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
2025-05-25 10:10:20 -07:00
|
|
|
|
|
|
|
|
# doesn't require sourcing on all platforms
|
|
|
|
|
set +e
|
|
|
|
|
source $HOME/.local/bin/env
|
|
|
|
|
set -e
|
2025-05-19 21:19:41 -07:00
|
|
|
fi
|
2025-05-17 19:46:23 -07:00
|
|
|
|
2025-05-19 21:19:41 -07:00
|
|
|
export UV_PROJECT_ENVIRONMENT="$DIR/.venv"
|
2025-09-28 13:42:49 -07:00
|
|
|
uv sync --all-extras --upgrade
|
2025-05-19 21:19:41 -07:00
|
|
|
source "$DIR/.venv/bin/activate"
|