daemon: fix off-by-one in logging extended attributes
[gitweb.git] / t / lib-git-daemon.sh
index f9cbd4793194fbc38ec9a2bde0eafad748735044..9612cccefb1c9dd37e61857a88ea92d86ddf854d 100644 (file)
@@ -46,17 +46,26 @@ start_git_daemon() {
 
        say >&3 "Starting git daemon ..."
        mkfifo git_daemon_output
-       git daemon --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \
+       ${LIB_GIT_DAEMON_COMMAND:-git daemon} \
+               --listen=127.0.0.1 --port="$LIB_GIT_DAEMON_PORT" \
                --reuseaddr --verbose \
                --base-path="$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
                "$@" "$GIT_DAEMON_DOCUMENT_ROOT_PATH" \
                >&3 2>git_daemon_output &
        GIT_DAEMON_PID=$!
+       >daemon.log
        {
-               read line <&7
-               echo >&4 "$line"
-               cat <&7 >&4 &
-       } 7<git_daemon_output &&
+               read -r line <&7
+               printf "%s\n" "$line"
+               printf >&4 "%s\n" "$line"
+               (
+                       while read -r line <&7
+                       do
+                               printf "%s\n" "$line"
+                               printf >&4 "%s\n" "$line"
+                       done
+               ) &
+       } 7<git_daemon_output >>"$TRASH_DIRECTORY/daemon.log" &&
 
        # Check expected output
        if test x"$(expr "$line" : "\[[0-9]*\] \(.*\)")" != x"Ready to rumble"