#!/bin/bash COMPILER=$2 SSL=$3 DISTRO=$(grep -E '^NAME=' /etc/os-release | cut -d'=' -f2 | tr -d '"') # Installs a package using the native OS's package manager. install_pkg() { case $DISTRO in "Ubuntu") "Debian GNU/Linux" ) apt install -y $1 ;; "Arch Linux" ) pacman -Syu --noconfirm $1 ;; esac } install_compiler() { echo '::group::Setting up a compiler' case $DISTRO in "Ubuntu" ) "Debian GNU/Linux" ) install_pkg build-essential [ $COMPILER = 'clang' ] && install_pkg clang CC=gcc [ $COMPILER = 'clang' ] && CC=clang ;; "Arch Linux" ) install_pkg $COMPILER make CC=gcc [ $COMPILER = 'clang' ] && CC=clang esac echo '::endgroup::' } install_ssl() { echo '::group::Setting up SSL' case $DISTRO in "Ubuntu" ) "Debian GNU/Linux" ) # Doesn't seem like Debian got LibreSSL [ $SSL = 'libressl' ] && echo "::error ::LibreSSL is not on Debian" install_pkg openssl ;; "Arch Linux" ) install_pkg $SSL esac echo '::endgroup::' } # Install the compiler and SSL install_compiler install_ssl echo "compiler=$CC" >> "$GITHUB_OUTPUT"