Fix and test handling of backslashes in hooks (#3909)

* Update hooks to use `read -r` and `printf`

This portably avoids any interpretation of backslash escapes by the
shell.

* Support running make_tc_task elsewhere

* Add a test for backslashes in task descriptions
This commit is contained in:
Dustin J. Mitchell 2025-07-08 02:40:34 -04:00 committed by GitHub
parent 7fdcdebd19
commit c639cc030d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
27 changed files with 115 additions and 75 deletions

View file

@ -2,17 +2,17 @@
# Input:
# - Line of JSON for proposed new task.
read new_task
read -r new_task
if (echo $new_task | grep -qE '[tT]eh');
if (printf "%s\n" "$new_task" | grep -qE '[tT]eh');
then
new_task=$(echo $new_task | sed -r 's/([tT])eh/\1he/g')
new_task=$(printf "%s\n" "$new_task" | sed -r 's/([tT])eh/\1he/g')
fi
# Output:
# - JSON, modified
# - Optional feedback/error.
echo $new_task
printf "%s\n" "$new_task"
echo 'FEEDBACK'
# Status: