#!/usr/bin/env bash ((${BASH_VERSION%%.*} >= 4)) || echo >&2 "$0: Warning: Using ancient Bash version ${BASH_VERSION}." set -euxo pipefail if [[ "${OSTYPE}" == msys* ]]; then # Windows if which choco; then # Chocolatey packages choco_packages=( sccache conan ) choco install "${choco_packages[@]}" -y else echo >&2 "$0: Error: You don't have a recognized package manager installed." exit 1 fi elif [[ "${OSTYPE}" == darwin* ]]; then # macOS # Homebrew packages brew_packages=( bash # macOS ships with Bash v3 for licensing reasons so upgrade it now conan ccache ) brew install "${brew_packages[@]}" else # Linux & others if ! which sudo; then function sudo() { "$@"; } # no-op sudo for use in Docker images fi # Distribution packages if which apt-get; then apt_packages=( # Docker image file g++ git wget bash # GitHub Actions libasound2-dev libgtk2.0-dev gettext ccache ) sudo apt-get update -y sudo apt-get install -y --no-install-recommends "${apt_packages[@]}" # Download Conan from github wget "https://github.com/conan-io/conan/releases/latest/download/conan-ubuntu-64.deb" -nv -O /tmp/conan.deb sudo dpkg -i /tmp/conan.deb else echo >&2 "$0: Error: You don't have a recognized package manager installed." exit 1 fi fi