#!/usr/bin/env bash

set -euo pipefail

#
# GovCMS validate platform yaml.
#
# Ensures that the necessary Platform files contain
# valid yaml.
#

GOVCMS_PLATFORM_FILES=${GOVCMS_PLATFORM_FILES:-}
GOVCMS_YAML_LINT=${GOVCMS_YAML_LINT:-}

echo "GovCMS Validate :: Yaml lint platform files"

if [ -z "${GOVCMS_PLATFORM_FILES}" ]; then
  GOVCMS_PLATFORM_FILES=$(find . -type f \( -name '.lagoon.yml' \))
fi

if [ -z "${GOVCMS_YAML_LINT}" ]; then
  GOVCMS_YAML_LINT=govcms-yaml_lint
  if ! command -v "$GOVCMS_YAML_LINT" > /dev/null 2>&1; then
    GOVCMS_YAML_LINT=/app/vendor/bin/govcms-yaml_lint
  fi
fi

IFS_BAK="$IFS"
IFS=$'\n'

for file in $GOVCMS_PLATFORM_FILES; do
  if ! $GOVCMS_YAML_LINT "$file"; then
    echo "[fail]: $file failed lint";
    exit 1;
  fi
done

IFS=$IFS_BAK
echo "[success]: No YAML issues in platform files."
