#!/usr/bin/env bash

# Detect whether a given error string exists in an ocean log.
# Usage: do_oceanlogERR <error_pattern> <ocean_log>

set -euo pipefail

if [[ $# -ne 2 ]]; then
  echo "Usage: $0 <error_pattern> <ocean_log>" >&2
  exit 1
fi

err_str="$1"
oce_log="$2"

[[ -f "${oce_log}" ]] || {
  echo "ERROR: log file not found: ${oce_log}" >&2
  exit 1
}

if grep -q "${err_str}" "${oce_log}"; then
  echo "1: found err_str:'${err_str}' in ${oce_log}"

  echo "    grep_str: 'not found' :"
  aa="$(grep -a 'not found' "${oce_log}" || true)"
  ab="$(echo "${aa}" | sed 's/ *$//g')"
  if [[ -z "${ab}" ]]; then
    echo "       FAIL"
  else
    echo "     : ${ab}"
  fi

  echo "    grep_str: 'huge E-R-R-O-R' :"
  aa="$(grep -a 'huge E-R-R-O-R' "${oce_log}" || true)"
  ab="$(echo "${aa}" | sed 's/ *$//g')"
  if [[ -z "${ab}" ]]; then
    echo "       FAIL ;"
  else
    echo "     : ${ab}"
  fi
else
  echo "0: NOT found err_str:'${err_str}' in ${oce_log}"
fi
