From 8885f979096f46afd30188e92cefd492c3620787 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 18 Nov 2016 18:22:09 +0000 Subject: Quote shell commands in logs from build-many-glibcs.py. As requested in , 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. --- ChangeLog | 6 ++++++ scripts/build-many-glibcs.py | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 619111f..2232d45 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-11-18 Joseph Myers + + * 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 Maciej W. Rozycki diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index b0e0f5e..517dec4 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' -- cgit v1.1