Here is a useful bash function:
function file_ends_with_newline() {
[[ $(tail -c1 "$1" | wc -l) -gt 0 ]]
}
You can use it like:
if ! file_ends_with_newline myfile.txt
then
echo "" >> myfile.txt
fi
# continue with other stuff that assumes myfile.txt ends with a newline