diff options
Diffstat (limited to 'buildroot/bin/opt_set')
-rw-r--r-- | buildroot/bin/opt_set | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/buildroot/bin/opt_set b/buildroot/bin/opt_set new file mode 100644 index 0000000..a646e09 --- /dev/null +++ b/buildroot/bin/opt_set @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# exit on first failure +set -e + +SED=$(which gsed || which sed) + +# Logic for returning nonzero based on answer here: https://stackoverflow.com/a/15966279/104648 +eval "${SED} -i '/\(\/\/\)*\([[:blank:]]*\)\(#define\s\+\b${1}\b\).*$/{s//\2\3 ${2}/;h};\${x;/./{x;q0};x;q9}' Marlin/Configuration.h" || +eval "${SED} -i '/\(\/\/\)*\([[:blank:]]*\)\(#define\s\+\b${1}\b\).*$/{s//\2\3 ${2}/;h};\${x;/./{x;q0};x;q9}' Marlin/Configuration_adv.h" || +eval "echo '#define ${@}' >>Marlin/Configuration_adv.h" || +(echo "ERROR: opt_set Can't set or add ${1}" >&2 && exit 9) |