#!/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)
        ;;
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
