1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-12-02 08:09:36 +00:00
MarlinFirmware/buildroot/bin/opt_set
Scott Lahteine 74ffa0cc3e 🧑‍💻 More compatible opt helpers
2024-09-23 19:50:07 -05:00

39 lines
997 B
Bash
Executable File

#!/usr/bin/env bash
# exit on first failure
set -e
# Get SED_CMD, SED_I, and the BSDSED flag
. $(dirname $0)/opt_sed
while [[ $# > 1 ]]; do
DID=0
for FN in Marlin/Configuration.h Marlin/Configuration_adv.h; do
if [[ $BSDSED ]]; then
# BSD sed version (macOS)
$SED_CMD "${SED_I[@]}" \
"/^[[:space:]]*\/\{0,2\}[[:space:]]*#define[[:space:]]+${1}\b/{
s/^[[:space:]]*\/\{0,2\}[[:space:]]*\(#define[[:space:]]+${1}\b\)[[:space:]]*.*/\1 ${2} \/\/ &/
h
\$b end
}
\$!b
:end
x
/./{ x; q0; }
x
q1" \
$FN && DID=1
else
# GNU sed version
$SED_CMD "${SED_I[@]}" \
"/^\(\s*\)\/\{0,2\}\s*\(#define\s\+${1}\b\)\s*\(.*\)$/{s//\1\2 ${2} \/\/ \3/;h};\${x;/./{x;q0};x;q1}" \
$FN && DID=1
fi
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