#!/usr/bin/env bash

set -xeuo pipefail

export HOMEBREW_NO_INSTALL_CLEANUP=1

# if root or if sudo/unavailable, define an empty variable
if [ "$(id -u)" -eq 0 ]
then maysudo=''
else maysudo="$(command -v sudo || command -v doas || true)"
fi

function finalize {
  # after packages install (curl, etc), get the rust toolchain
  which rustup > /dev/null 2>&1 || curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
  # verify the mold situation
  if ! command -v mold >/dev/null 2>&1; then
    echo "Warning: Mold binaries are unavailable on your system." >&2
    echo "    Builds will be slower without mold. Try: script/install-mold" >&2
  fi
  echo "Finished installing MacOS dependencies with script/macos"
}

# MacOS
brew=$(command -v brew || true)
if [[ -n $brew ]]; then
  deps=(
    gcc
    libx11
    libxkbcommon
    openssl
    zstd
    vulkan-headers
    libgit2
    libx11
    make
    cmake
    jq
    git
    curl
    gettext
  )

  $brew update
  for dep in "${deps[@]}";do
  $brew search "$dep";
  done
  $brew install "${deps[@]}"
  finalize
  exit 0
fi
