aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-11-18 18:22:09 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-11-18 18:22:09 +0000
commit8885f979096f46afd30188e92cefd492c3620787 (patch)
tree77920e0438197de3789171c19c1a4a0e105a4478
parentcfaf1949ff1f8336b54c43796d0e2531bc8a40a2 (diff)
downloadglibc-8885f979096f46afd30188e92cefd492c3620787.tar
glibc-8885f979096f46afd30188e92cefd492c3620787.tar.gz
glibc-8885f979096f46afd30188e92cefd492c3620787.tar.bz2
glibc-8885f979096f46afd30188e92cefd492c3620787.zip
Quote shell commands in logs from build-many-glibcs.py.
As requested in <https://sourceware.org/ml/libc-alpha/2016-11/msg00664.html>, this patch makes the commands recorded in build-many-glibcs.py quote words so they can be cut-and-pasted back into a shell. (Note that these logs are generated by the wrapper script generated to run commands with logs, hence the needs for quoting logic to be implemented in that shell script.) * scripts/build-many-glibcs.py (Context.write_files): Make wrapper script quote words in command output to log suitably for input to the shell.
-rw-r--r--ChangeLog6
-rwxr-xr-xscripts/build-many-glibcs.py12
2 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 619111f582..2232d456a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-18 Joseph Myers <joseph@codesourcery.com>
+
+ * scripts/build-many-glibcs.py (Context.write_files): Make wrapper
+ script quote words in command output to log suitably for input to
+ the shell.
+
2016-11-18 Matthew Fortune <Matthew.Fortune@imgtec.com>
Maciej W. Rozycki <macro@imgtec.com>
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py
index b0e0f5e8ef..517dec4974 100755
--- a/scripts/build-many-glibcs.py
+++ b/scripts/build-many-glibcs.py
@@ -423,7 +423,17 @@ class Context(object):
'date > "$this_log"\n'
'echo >> "$this_log"\n'
'echo "Description: $desc" >> "$this_log"\n'
- 'echo "Command: $*" >> "$this_log"\n'
+ 'printf "%s" "Command:" >> "$this_log"\n'
+ 'for word in "$@"; do\n'
+ ' if expr "$word" : "[]+,./0-9@A-Z_a-z-]\\\\{1,\\\\}\\$" > /dev/null; then\n'
+ ' printf " %s" "$word"\n'
+ ' else\n'
+ ' printf " \'"\n'
+ ' printf "%s" "$word" | sed -e "s/\'/\'\\\\\\\\\'\'/"\n'
+ ' printf "\'"\n'
+ ' fi\n'
+ 'done >> "$this_log"\n'
+ 'echo >> "$this_log"\n'
'echo "Directory: $dir" >> "$this_log"\n'
'echo "Path addition: $path" >> "$this_log"\n'
'echo >> "$this_log"\n'