#!/usr/bin/env bash
#
# opt_find
# Find one or more Marlin options - Configuration lines starting with #define
#

MYNAME=$(basename $0)

[[ $# == 0 ]] && ONE="-h" || ONE=$1

COMM="(//\\s*)?" ; TYPE=""
case "$ONE" in
  -d|--disabled )
      shift ; COMM="(//\\s*)" ; TYPE="disabled " ;;
  -e|--enabled )
      shift ; COMM="" ; TYPE="enabled " ;;
  -h|--help )
      echo "$MYNAME [-d|--disabled|-e|--enabled] STRING ... Find matching Marlin configuration options."
      echo ; shift ;;
  -* )
      echo "Unknown option $ONE" ; shift ;;
esac

while [[ $# > 0 ]]; do
  DID=0
  for FN in Configuration Configuration_adv; do
    FOUND=$( grep -HEn "^\s*${COMM}#define\s+[A-Z0-9_]*${1}" "Marlin/$FN.h" 2>/dev/null )
    [[ -n "$FOUND" ]] && { echo "$FOUND" ; DID=1 ; }
  done
  ((DID)) || { echo "ERROR: ${MYNAME} - No ${TYPE}match for ${1}" ; exit 9; }
  shift
  echo
done
