diff --git a/dev-setup/install_linux_prerequisites.sh b/dev-setup/install_linux_prerequisites.sh index 9486747f..1d057804 100755 --- a/dev-setup/install_linux_prerequisites.sh +++ b/dev-setup/install_linux_prerequisites.sh @@ -2,29 +2,29 @@ set -eo pipefail if [ $(id -u) -eq 0 ]; then - echo "Don't run this as root" - exit + echo "Don't run this as root" + exit fi if [ ! -z "$(command -v apt)" ]; then - # Install APT dependencies - sudo apt update -y - sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip + # Install APT dependencies + sudo apt update -y + sudo apt install -y openjdk-17-jdk-headless iproute2 curl build-essential cmake libssl-dev openssl file git pkg-config libdbus-1-dev libdbus-glib-1-dev libgirepository1.0-dev libcairo2-dev checkinstall unzip llvm wabt python3-pip elif [ ! -z "$(command -v dnf)" ]; then - # DNF (formerly yum) - sudo dnf update -y - # libgirepository -> gobject-introspection - # iproute2 -> iproute - # openjdk-17-jdk-headless -> java-11-openjdk-headless - # checkinstall does not appear to be a thing in Fedora 38 repos - # - # Seems like iproute and file might come preinstalled but I put - # them in anyway - # - # Also Fedora doesn't come with pip - sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ - # build-essentials - sudo dnf groupinstall -y 'Development Tools' + # DNF (formerly yum) + sudo dnf update -y + # libgirepository -> gobject-introspection + # iproute2 -> iproute + # openjdk-17-jdk-headless -> java-11-openjdk-headless + # checkinstall does not appear to be a thing in Fedora 38 repos + # + # Seems like iproute and file might come preinstalled but I put + # them in anyway + # + # Also Fedora doesn't come with pip + sudo dnf install -y java-17-openjdk-headless iproute curl cmake openssl-devel openssl git file pkg-config dbus-devel dbus-glib gobject-introspection-devel cairo-devel unzip llvm wabt python3-pip gcc-c++ + # build-essentials + sudo dnf groupinstall -y 'Development Tools' fi # Install Rust @@ -33,39 +33,39 @@ source "$HOME/.cargo/env" #ask if they want to install optional android sdk (and install if yes) while true; do - read -p "Do you want to install Android SDK (optional) Y/N) " response + read -p "Do you want to install Android SDK (optional) Y/N) " response - case $response in - [yY]) - echo Installing Android SDK... - # Install Android SDK - mkdir $HOME/Android - mkdir $HOME/Android/Sdk - curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip - cd $HOME/Android - unzip $HOME/Android/cmdline-tools.zip - $HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$HOME/Android/Sdk build-tools\;34.0.0 ndk\;26.3.11579264 cmake\;3.22.1 platform-tools platforms\;android-34 cmdline-tools\;latest emulator - cd $HOME - rm -rf $HOME/Android/cmdline-tools $HOME/Android/cmdline-tools.zip + case $response in + [yY]) + echo Installing Android SDK... + # Install Android SDK + mkdir $HOME/Android + mkdir $HOME/Android/Sdk + curl -o $HOME/Android/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9123335_latest.zip + cd $HOME/Android + unzip $HOME/Android/cmdline-tools.zip + $HOME/Android/cmdline-tools/bin/sdkmanager --sdk_root=$HOME/Android/Sdk build-tools\;34.0.0 ndk\;26.3.11579264 cmake\;3.22.1 platform-tools platforms\;android-34 cmdline-tools\;latest emulator + cd $HOME + rm -rf $HOME/Android/cmdline-tools $HOME/Android/cmdline-tools.zip - # Add environment variables - cat >>$HOME/.profile <>$HOME/.profile <>$HOME/.profile <>$HOME/.profile </dev/null 2>&1 && pwd)" if [[ "$(uname)" != "Linux" ]]; then - echo Not running Linux - exit 1 + echo Not running Linux + exit 1 fi if ! lsb_release -d | grep -qEi 'debian|buntu|mint|pop\!\_os' && [ -z "$(command -v dnf)" ]; then - echo Not a supported Linux - exit 1 + echo Not a supported Linux + exit 1 fi while true; do - read -p "Did you install Android SDK? Y/N " response + read -p "Did you install Android SDK? Y/N " response - case $response in - [yY]) - echo Checking android setup... + case $response in + [yY]) + echo Checking android setup... - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # ensure ndk is installed - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &>/dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break - ;; - [nN]) - echo Skipping Android SDK config check... - break - ;; - *) echo invalid response ;; - esac + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; + *) echo invalid response ;; + esac done # ensure rustup is installed if command -v rustup &>/dev/null; then - echo '[X] rustup is available in the path' + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed if command -v cargo &>/dev/null; then - echo '[X] cargo is available in the path' + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed if command -v pip3 &>/dev/null; then - echo '[X] pip3 is available in the path' + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # install targets @@ -118,21 +118,21 @@ pip3 install --upgrade bumpversion # install capnp while true; do - read -p "Will you be modifying the capnproto schema? Y/N (say N if unsure)" response + read -p "Will you be modifying the capnproto schema? Y/N (say N if unsure)" response - case $response in - [yY]) - echo Installing capnproto... + case $response in + [yY]) + echo Installing capnproto... - # Install capnproto using the same mechanism as our earthly build - $SCRIPTDIR/../scripts/earthly/install_capnproto.sh + # Install capnproto using the same mechanism as our earthly build + $SCRIPTDIR/../scripts/earthly/install_capnproto.sh - break - ;; - [nN]) - echo Skipping capnproto installation... - break - ;; - *) echo invalid response ;; - esac + break + ;; + [nN]) + echo Skipping capnproto installation... + break + ;; + *) echo invalid response ;; + esac done diff --git a/dev-setup/setup_macos.sh b/dev-setup/setup_macos.sh index 3552ae2d..c4cfdfdb 100755 --- a/dev-setup/setup_macos.sh +++ b/dev-setup/setup_macos.sh @@ -4,148 +4,148 @@ set -eo pipefail SCRIPTDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)" if [ ! "$(uname)" == "Darwin" ]; then - echo Not running on MacOS - exit 1 + echo Not running on MacOS + exit 1 fi while true; do - read -p "Did you install Android SDK? Y/N " response - case $response in - [yY]) - echo Checking android setup... - # ensure ANDROID_HOME is defined and exists - if [ -d "$ANDROID_HOME" ]; then - echo '[X] $ANDROID_HOME is defined and exists' - else - echo '$ANDROID_HOME is not defined or does not exist' - exit 1 - fi + read -p "Did you install Android SDK? Y/N " response + case $response in + [yY]) + echo Checking android setup... + # ensure ANDROID_HOME is defined and exists + if [ -d "$ANDROID_HOME" ]; then + echo '[X] $ANDROID_HOME is defined and exists' + else + echo '$ANDROID_HOME is not defined or does not exist' + exit 1 + fi - # ensure Android Command Line Tools exist - if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then - echo '[X] Android command line tools are installed' - else - echo 'Android command line tools are not installed' - exit 1 - fi + # ensure Android Command Line Tools exist + if [ -d "$ANDROID_HOME/cmdline-tools/latest/bin" ]; then + echo '[X] Android command line tools are installed' + else + echo 'Android command line tools are not installed' + exit 1 + fi - # ensure Android SDK packages are installed - $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager build-tools\;34.0.0 ndk\;26.3.11579264 cmake\;3.22.1 platform-tools platforms\;android-34 + # ensure Android SDK packages are installed + $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager build-tools\;34.0.0 ndk\;26.3.11579264 cmake\;3.22.1 platform-tools platforms\;android-34 - # ensure ANDROID_NDK_HOME is defined and exists - ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" - if [ -d "$ANDROID_NDK_HOME" ]; then - echo '[X] Android NDK is defined and exists' - else - echo 'Android NDK is not defined or does not exist' - exit 1 - fi + # ensure ANDROID_NDK_HOME is defined and exists + ANDROID_NDK_HOME="$ANDROID_HOME/ndk/26.3.11579264" + if [ -d "$ANDROID_NDK_HOME" ]; then + echo '[X] Android NDK is defined and exists' + else + echo 'Android NDK is not defined or does not exist' + exit 1 + fi - # ensure ndk is installed - if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then - echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' - else - echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' - exit 1 - fi + # ensure ndk is installed + if [ -f "$ANDROID_NDK_HOME/ndk-build" ]; then + echo '[X] Android NDK is installed at the location $ANDROID_NDK_HOME' + else + echo 'Android NDK is not installed at the location $ANDROID_NDK_HOME' + exit 1 + fi - # ensure cmake is installed - if [ -d "$ANDROID_HOME/cmake" ]; then - echo '[X] Android SDK CMake is installed' - else - echo 'Android SDK CMake is not installed' - exit 1 - fi + # ensure cmake is installed + if [ -d "$ANDROID_HOME/cmake" ]; then + echo '[X] Android SDK CMake is installed' + else + echo 'Android SDK CMake is not installed' + exit 1 + fi - # ensure emulator is installed - if [ -d "$ANDROID_HOME/emulator" ]; then - echo '[X] Android SDK emulator is installed' - else - echo 'Android SDK emulator is not installed' - exit 1 - fi + # ensure emulator is installed + if [ -d "$ANDROID_HOME/emulator" ]; then + echo '[X] Android SDK emulator is installed' + else + echo 'Android SDK emulator is not installed' + exit 1 + fi - # ensure adb is installed - if command -v adb &>/dev/null; then - echo '[X] adb is available in the path' - else - echo 'adb is not available in the path' - exit 1 - fi - break - ;; - [nN]) - echo Skipping Android SDK config check... - break - ;; + # ensure adb is installed + if command -v adb &>/dev/null; then + echo '[X] adb is available in the path' + else + echo 'adb is not available in the path' + exit 1 + fi + break + ;; + [nN]) + echo Skipping Android SDK config check... + break + ;; - *) echo invalid response ;; - esac + *) echo invalid response ;; + esac done # ensure brew is installed if command -v brew &>/dev/null; then - echo '[X] brew is available in the path' + echo '[X] brew is available in the path' else - echo 'brew is not available in the path' - exit 1 + echo 'brew is not available in the path' + exit 1 fi # ensure xcode is installed if command -v xcode-select &>/dev/null; then - echo '[X] XCode is available in the path' + echo '[X] XCode is available in the path' else - echo 'XCode is not available in the path' - exit 1 + echo 'XCode is not available in the path' + exit 1 fi # ensure rustup is installed if command -v rustup &>/dev/null; then - echo '[X] rustup is available in the path' + echo '[X] rustup is available in the path' else - echo 'rustup is not available in the path' - exit 1 + echo 'rustup is not available in the path' + exit 1 fi # ensure cargo is installed if command -v cargo &>/dev/null; then - echo '[X] cargo is available in the path' + echo '[X] cargo is available in the path' else - echo 'cargo is not available in the path' - exit 1 + echo 'cargo is not available in the path' + exit 1 fi # ensure pip3 is installed if command -v pip3 &>/dev/null; then - echo '[X] pip3 is available in the path' + echo '[X] pip3 is available in the path' else - echo 'pip3 is not available in the path' - exit 1 + echo 'pip3 is not available in the path' + exit 1 fi # ensure Java 17 is the active version JAVA_VERSION=$(java -version 2>&1 | head -n 1 | cut -d\" -f2) if [ "$JAVA_VERSION" == "17" ]; then - echo '[X] Java 17 is available in the path' + echo '[X] Java 17 is available in the path' else - echo 'Java 17 is not available in the path' - exit 1 + echo 'Java 17 is not available in the path' + exit 1 fi # ensure we have command line tools xcode-select --install 2>/dev/null || true until [ -d /Library/Developer/CommandLineTools/usr/bin ]; do - sleep 5 + sleep 5 done # install packages # if $BREW_USER is set, run brew as that user, otherwise run it regularly # this allows for developers who have brew installed as a different user to run this script if [ -z "$BREW_USER" ]; then - BREW_COMMAND="brew" + BREW_COMMAND="brew" else - BREW_COMMAND="sudo -H -u $BREW_USER brew" + BREW_COMMAND="sudo -H -u $BREW_USER brew" fi $BREW_COMMAND install capnp cmake wabt llvm jq @@ -160,8 +160,8 @@ cargo install wasm-bindgen-cli wasm-pack cargo-edit pip3 install --upgrade bumpversion if command -v pod &>/dev/null; then - echo '[X] CocoaPods is available in the path' + echo '[X] CocoaPods is available in the path' else - echo 'CocoaPods is not available in the path, installing it now' - $BREW_COMMAND install cocoapods + echo 'CocoaPods is not available in the path, installing it now' + $BREW_COMMAND install cocoapods fi