#!/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)
        export PATH="/usr/local/bin${PATH:+:}${PATH}"
        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}

if [[ $JOB_NAME == *"code-coverage" ]]; then
    export DISABLE_ASAN=yes
    export DISABLE_HEADERS_CHECK=yes
fi

# https://reproducible-builds.org/docs/source-date-epoch/
export SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)

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
