#!/usr/bin/env bash
set -e
source .jenkins.d/util.sh

export WAF_JOBS=${WAF_JOBS:-1}

nanos() {
    # Cannot use date(1) because macOS does not support %N format specifier
    python3 -c 'import time; print(int(time.time() * 1e9))'
}

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

    if [[ -n $TRAVIS ]]; then
        label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
        echo -ne "travis_fold:start:${label}\r"
        echo -ne "travis_time:start:${label}\r"
        start=$(nanos)
    fi

    echo "\$ $file"
    "$file"

    if [[ -n $TRAVIS ]]; then
        finish=$(nanos)
        echo -ne "travis_time:end:${label}:start=${start},finish=${finish},duration=$((finish-start)),event=${label}\r"
        echo -ne "travis_fold:end:${label}\r"
    fi
done
