#!/bin/bash
# Compress doc artifacts and name them based on the commit, or the date if
# commit is not available.

set -euox pipefail

# Try to get short commit hash, fallback to date
if [ -n "$HEAD_SHA" ]; then
    short_rev=$(echo "${HEAD_SHA}" | cut -c1-8)
else
    short_rev=$(git rev-parse --short HEAD || date -u +'%Y-%m-%dT%H%M%SZ')
fi

# Try to get branch, fallback to none
branch=$(git branch --show-current || echo)

if [ -n "$branch" ]; then
    # Strip automation/bors/ prefix if present
    branch="${branch#automation/bors/}-"
fi

if [ "${GITHUB_EVENT_NAME:=none}" = "pull_request" ]; then
    pr_num=$(echo "$GITHUB_REF_NAME" | cut -d'/' -f1)
    name="doc-${pr_num}-${short_rev}"
else
    name="doc-${branch}${short_rev}"
fi


if [ -d "obj/staging/doc" ]; then
    mkdir -p obj/artifacts/doc

    # Level 12 seems to give a good tradeoff of time vs. space savings
    ZSTD_CLEVEL=12 ZSTD_NBTHREADS=4 \
    tar --zstd -cf "obj/artifacts/doc/${name}.tar.zst" -C obj/staging/doc .

    ls -lh obj/artifacts/doc
fi

# Set this environment variable for future use if running in CI
if [ -n "$GITHUB_ENV" ]; then
    echo "DOC_ARTIFACT_NAME=${name}" >> "$GITHUB_ENV"
fi
