#!/usr/bin/env bash

###### script header ######

lib=$(realpath @@BASE_LIB@@) || exit 1
stat "${lib}" >> /dev/null || exit 1

# shellcheck source=../sh/lib.bash
if ! source "${lib}"; then
  echo "Error: could not find import"
  exit 1
fi

cd "${BUILD_WORKSPACE_DIRECTORY}"

###### script body ######

# Find all action YAMLs. This action check if there are files within
# .github/actions that are not used in any workflow or action YAML.
# We only want directory of that exact level and ignore subdirectories.
actionNames=$(
  find .github/actions \
    -maxdepth 2 \
    -type d \
    ! -name actions
)

actionYMLs=$(
  find .github/actions \
    ! -name actions \
    -type f \
    -name '*.yml'
)

workflowYMLs=$(
  find .github/workflows \
    -type f \
    -name '*.yml'
)

exitcode=0

for action in ${actionNames}; do
  used=false

  for yml in ${actionYMLs} ${workflowYMLs}; do
    if grep -q "${action}" "${yml}"; then
      used=true
      break
    fi
  done

  if [[ ${used} == "false" && ${action} != ".github/actions/artifact_download" ]]; then
    echo "Action ${action} is unused"
    exitcode=1
  fi
done

exit "${exitcode}"