)]}'
{"functions.sh":[{"author":{"_account_id":7979,"name":"Mikhail S Medvedev","email":"mihailmed@gmail.com","username":"msmedved"},"change_message_id":"1fc9f8da662ebeea2245f9cf5ad2e88d6dc5d9e9","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        echo \"Running $hook_name\""},{"line_number":73,"context_line":"        xtrace\u003d$(set +o | grep xtrace)"},{"line_number":74,"context_line":"        set -o xtrace -o pipefail"},{"line_number":75,"context_line":"        $hook_name | tee \u003e(tsfilter awk \u0027{print}\u0027 \u003e $filename)"},{"line_number":76,"context_line":"        local ret_val\u003d$?"},{"line_number":77,"context_line":"        $SUDO mv $filename $save_dir"},{"line_number":78,"context_line":"        set +o pipefail"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7af24918_ddc4e093","line":75,"range":{"start_line":75,"start_character":18,"end_line":75,"end_character":19},"updated":"2016-03-01 21:01:55.000000000","message":"need to add \u00272\u003e\u00261\u0027, so stderr is also saved to log file","commit_id":"1443823f520243bc9378061b4b5a90cc6309468f"},{"author":{"_account_id":7979,"name":"Mikhail S Medvedev","email":"mihailmed@gmail.com","username":"msmedved"},"change_message_id":"1fc9f8da662ebeea2245f9cf5ad2e88d6dc5d9e9","unresolved":false,"context_lines":[{"line_number":83,"context_line":""},{"line_number":84,"context_line":"# awk filter to timestamp the stream, including stderr merging"},{"line_number":85,"context_line":"function tsfilter {"},{"line_number":86,"context_line":"    $@ 2\u003e\u00261 | awk \u0027"},{"line_number":87,"context_line":"    {"},{"line_number":88,"context_line":"        cmd \u003d\"date +\\\"%Y-%m-%d %H:%M:%S.%3N | \\\"\""},{"line_number":89,"context_line":"        cmd | getline now"}],"source_content_type":"text/x-sh","patch_set":2,"id":"7af24918_3d798494","line":86,"range":{"start_line":86,"start_character":0,"end_line":86,"end_character":19},"updated":"2016-03-01 21:01:55.000000000","message":"tsfilter redirects stderr into stdout","commit_id":"1443823f520243bc9378061b4b5a90cc6309468f"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"8e279df7772448ea760a4f35917c618512ab65f4","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"function call_hook_if_defined {"},{"line_number":68,"context_line":"    local hook_name\u003d$1"},{"line_number":69,"context_line":"    local save_dir\u003d${3-$BASE/logs/}"},{"line_number":70,"context_line":"    if function_exists $hook_name; then"},{"line_number":71,"context_line":"        echo \"Running $hook_name\""},{"line_number":72,"context_line":"        xtrace\u003d$(set +o | grep xtrace)"}],"source_content_type":"text/x-sh","patch_set":6,"id":"7a8ec9b2_a306c71a","line":69,"updated":"2016-09-16 01:40:37.000000000","message":"this is also unused now?","commit_id":"1f2d13c0fc4f0ee474ab332d61a2ac1c0b38be81"}]}
