🔨 Python config helpers (#27483)
This commit is contained in:
+22
-35
@@ -1,38 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
#!/usr/bin/env python
|
||||
|
||||
# exit on first failure
|
||||
set -e
|
||||
import sys, os, config
|
||||
|
||||
# Get SED_CMD, SED_I, and the BSDSED flag
|
||||
. $(dirname $0)/opt_sed
|
||||
def main():
|
||||
args = sys.argv[1:]
|
||||
if len(args) % 2 != 0:
|
||||
print("ERROR: Please provide pairs of <name> <value>")
|
||||
return
|
||||
|
||||
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
|
||||
for i in range(0, len(args), 2):
|
||||
name = args[i]
|
||||
value = args[i + 1]
|
||||
changed = False
|
||||
|
||||
for file in config.FILES:
|
||||
if os.path.exists(file):
|
||||
if config.set(file, name, value):
|
||||
changed = True
|
||||
|
||||
if not changed:
|
||||
config.add(config.FILES[0], name, value)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user