)]}'
{"lib/horizon":[{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"8f6a24b8a432addb702bc3e7dc3e0f50b638ed01","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    local value\u003d$4"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    if [ -z \"$section\" ]; then"},{"line_number":46,"context_line":"        sed -e \"/^$option/d\" -i $local_settings"},{"line_number":47,"context_line":"        echo -e \"\\n$option\u003d$value\" \u003e\u003e $file"},{"line_number":48,"context_line":"    elif grep -q \"^$section\" $file; then"},{"line_number":49,"context_line":"        local line"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"7faddb67_c5fc26b7","side":"PARENT","line":46,"updated":"2019-07-26 07:00:34.000000000","message":"interesting that this even works, the local must be visible in the called function i guess","commit_id":"80725951501b4127f765291aa59e9aa4bfab20fc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"cf3c1dd4d908d5d984f4ace246ab9f7cb010d64c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    local value\u003d$4"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    if [ -z \"$section\" ]; then"},{"line_number":46,"context_line":"        sed -e \"/^$option/d\" -i $local_settings"},{"line_number":47,"context_line":"        echo -e \"\\n$option\u003d$value\" \u003e\u003e $file"},{"line_number":48,"context_line":"    elif grep -q \"^$section\" $file; then"},{"line_number":49,"context_line":"        local line"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"7faddb67_866386dc","side":"PARENT","line":46,"in_reply_to":"7faddb67_c5fc26b7","updated":"2019-07-27 08:28:02.000000000","message":"Yeah, I was surprised too...","commit_id":"80725951501b4127f765291aa59e9aa4bfab20fc"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"fb67e3abe01240ed4e8a0d1e1be7a3c7c52b24f4","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    if [ -z \"$section\" ]; then"},{"line_number":46,"context_line":"        sed -e \"/^$option/d\" -i $local_settings"},{"line_number":47,"context_line":"        echo -e \"\\n$option\u003d$value\" \u003e\u003e $file"},{"line_number":48,"context_line":"    elif grep -q \"^$section\" $file; then"},{"line_number":49,"context_line":"        local line"},{"line_number":50,"context_line":"        line\u003d$(sed -ne \"/^$section/,/^}/ { /^ *\u0027$option\u0027:/ p; }\" $file)"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"7faddb67_146d2731","side":"PARENT","line":47,"range":{"start_line":47,"start_character":17,"end_line":47,"end_character":19},"updated":"2019-08-02 10:29:30.000000000","message":"This is currently needed because the example file in horizon is missing a proper EOL at the end, so dropping the \\n will result in the first option being appended to the last line, which is a comment, and thus get ignored.\n\nOf course it should really be fixed in horizon and not need this workaround here, but as it stands, we would get an issue.","commit_id":"80725951501b4127f765291aa59e9aa4bfab20fc"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"fc4027db3f0860fbf478cd90661b2160602d2575","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    if [ -z \"$section\" ]; then"},{"line_number":46,"context_line":"        sed -e \"/^$option/d\" -i $local_settings"},{"line_number":47,"context_line":"        echo -e \"\\n$option\u003d$value\" \u003e\u003e $file"},{"line_number":48,"context_line":"    elif grep -q \"^$section\" $file; then"},{"line_number":49,"context_line":"        local line"},{"line_number":50,"context_line":"        line\u003d$(sed -ne \"/^$section/,/^}/ { /^ *\u0027$option\u0027:/ p; }\" $file)"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"3fa7e38b_b63166a5","side":"PARENT","line":47,"range":{"start_line":47,"start_character":17,"end_line":47,"end_character":19},"in_reply_to":"7faddb67_146d2731","updated":"2019-10-02 07:33:39.000000000","message":"The current local_settings.py.example in the horizon repo ends with EOL (newline), so it works now. However, it is not easy to ensure EOL. It depends on editors used by developers and reviewers might not care it.\n\nIf we assume EOL always exists, we can block accidental drop of EOL by DevStack but I don\u0027t think it is the role of DevStack lib/horizon.\n\nThus, I adopted your idea (at L.85) to add a blank line.\n\nP.S. A blank line is nice from the readability too :)","commit_id":"80725951501b4127f765291aa59e9aa4bfab20fc"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c134bc869aee367d741f27c7798297f58da06e20","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    if [ -z \"$section\" ]; then"},{"line_number":46,"context_line":"        sed -e \"/^$option/d\" -i $file"},{"line_number":47,"context_line":"        echo -e \"$option \u003d $value\" \u003e\u003e $file"},{"line_number":48,"context_line":"    elif grep -q \"^$section\" $file; then"},{"line_number":49,"context_line":"        local line"},{"line_number":50,"context_line":"        line\u003d$(sed -ne \"/^$section/,/^}/ { /^ *\u0027$option\u0027:/ p; }\" $file)"}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"7faddb67_f4488bb3","line":47,"range":{"start_line":47,"start_character":13,"end_line":47,"end_character":15},"updated":"2019-08-02 10:33:21.000000000","message":"With the \\n dropped, you can drop the -e, too.","commit_id":"e6e058a30d58b52c5e97289fefe9e4525943809b"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"c134bc869aee367d741f27c7798297f58da06e20","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    # ``local_settings.py`` is used to override horizon default settings."},{"line_number":84,"context_line":"    local local_settings\u003d$HORIZON_DIR/openstack_dashboard/local/local_settings.py"},{"line_number":85,"context_line":"    cp $HORIZON_SETTINGS $local_settings"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"    _horizon_config_set $local_settings \"\" WEBROOT \\\"$HORIZON_APACHE_ROOT/\\\""},{"line_number":88,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"7faddb67_94c7d712","line":85,"updated":"2019-08-02 10:33:21.000000000","message":"Actually just doing a \n\necho \u003e\u003e $local_settings\n\nhere would be a better workaround and could let the code above stay in its new version.","commit_id":"e6e058a30d58b52c5e97289fefe9e4525943809b"}]}
