Add two end-of-file checks to bash8. Firstly, alert if heredoc hasn't finished. Some heredocs were done like: --- sudo bash -c "cat <<EOF > foo ... EOF" --- (A better way to do this is "cat <<EOF | sudo tee ..." as it retains the usual heredoc layout in the code). The trailing quote was throwing the matching in bash8 off and it kept appending the next file as if it was still part of the heredoc. To avoid this, we check if we're still in a heredoc when we start a new file; if so raise an error and reset the heredoc status fresh. We track the state of the previous file, line and lineno so we can give a good error. --- E012: heredoc did not end before EOF: 'cat <<EOF' - lib/trove: L221 --- This includes fixes for the existing problem heredocs. A similar EOF check is to ensure the previous file ended with a newline. --- E004: file did not end with a newline: '$MY_XTRACE' - lib/neutron_plugins/embrane: L40 --- This requires only one fix Change-Id: I5e547d87b3921fc7ce6588c28f074e5c9f489c1f
5.9 KiB
Executable File
5.9 KiB
Executable File