#!/usr/bin/env bash

# exit on first failure
set -e

SED=$(which gsed sed | head -n1)

while [[ $# > 1 ]]; do
  DID=0
  for FN in Configuration Configuration_adv; do
    "${SED}" -i "/^\(\s*\)\/*\s*\(#define\s\+${1}\b\) *\(.*\)$/{s//\1\2 ${2} \/\/ \3/;h};\${x;/./{x;q0};x;q9}" Marlin/$FN.h && DID=1
  done
  ((DID)) ||
    eval "echo '#define ${1} ${2}' >>Marlin/Configuration.h" ||
      (echo "ERROR: opt_set Can't set or add ${1}" >&2 && exit 9)
  shift 2
done