#!/usr/bin/env bash
set -eo pipefail

case $(uname) in
    Linux)
        if [[ -e /etc/os-release ]]; then
            source /etc/os-release
        else
            source /usr/lib/os-release
        fi
        export ID VERSION_ID
        export ID_LIKE="${ID} ${ID_LIKE} linux"
        export PATH="${HOME}/.local/bin${PATH:+:}${PATH}"
        ;;
    Darwin)
        # Emulate a subset of os-release(5)
        export ID=macos
        export VERSION_ID=$(sw_vers -productVersion)
        if [[ -x /opt/homebrew/bin/brew ]]; then
            eval "$(/opt/homebrew/bin/brew shellenv)"
        elif [[ -x /usr/local/bin/brew ]]; then
            eval "$(/usr/local/bin/brew shellenv)"
        fi
        ;;
esac

export CACHE_DIR=${CACHE_DIR:-/tmp}
[[ $JOB_NAME == *"code-coverage" ]] && export DISABLE_ASAN=yes

for file in .jenkins.d/*; do
    [[ -f $file && -x $file ]] || continue

    if [[ -n $GITHUB_ACTIONS ]]; then
        label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
        echo "::group::${label}"
    fi

    echo "\$ $file"
    "$file"

    if [[ -n $GITHUB_ACTIONS ]]; then
        echo "::endgroup::"
    fi
done
