#!/usr/bin/with-contenv bash

set -e

RUST_BINS_PATH="/rust-bins"
PACKAGES_TO_INSTALL_LIST="/mod-repo-packages-to-install.list"

ARCH=$(uname -m)
SUPPORTED_ARCHS=("x86_64" "aarch64")

if [[ ! " ${SUPPORTED_ARCHS[@]} " =~ " ${ARCH} " ]]; then
  echo "+++ unsupported architecture: $ARCH +++"
  exit 1
fi

RUST_BINARY_ARCHIVE_PATH="$RUST_BINS_PATH/rust-$ARCH-gnu.tar.gz"

grep_os_release() {
  grep -q "$1" /etc/os-release && true || false
}

if [[ -f "$RUST_BINARY_ARCHIVE_PATH" ]]; then
  echo "+++ unpacking rust tar +++"
  tar -xzf "$RUST_BINARY_ARCHIVE_PATH" -C "$RUST_BINS_PATH" --strip-components=1

  echo "+++ installing rust +++"
  "$RUST_BINS_PATH/install.sh"
  rm -rf "$RUST_BINS_PATH"

  echo "+++ adding build tools +++"
  if grep_os_release "debian"; then
    echo "build-essential" >>"$PACKAGES_TO_INSTALL_LIST"
  else
    echo "gcc" >>"$PACKAGES_TO_INSTALL_LIST"
  fi

else
  echo "+++ rust tar not found +++"
fi
