mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-12-02 08:09:36 +00:00
39 lines
997 B
Bash
Executable File
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
|