fix(exec/bklog):Add kill switch if `while read` returns empty buffer
authorSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sat, 31 Oct 2020 04:15:52 +0000 (04:15 +0000)
committerSteven Baltakatei Sandoval <baltakatei@gmail.com>
Sat, 31 Oct 2020 04:15:52 +0000 (04:15 +0000)
Such as may occur if EOF condition experienced by `while read`

exec/bklog

index afb73bea52e157dabf00ab41d93fc6c6c31487d1..cc807a6e4f0d19b328aea786ee8f596db991c50d 100644 (file)
@@ -11,7 +11,7 @@ dirTmpDefault="/dev/shm"; # Default parent of working directory
 
 # Script Metadata
 scriptName="bklog";             # Define basename of script file.
-scriptVersion="0.1.32";         # Define version of script.
+scriptVersion="0.1.33";         # Define version of script.
 scriptURL="https://gitlab.com/baltakatei/ninfacyzga-01"; # Define website hosting this script.
 scriptTimeStartEpoch="$(date +%s)"; # Save start time of script in epoch seconds
 scriptTimeStart="$(date +%Y%m%dT%H%M%S.%N)"; # YYYYmmddTHHMMSS.NNNNNNNNN
@@ -1453,7 +1453,11 @@ main() {
        while read -r -t "$bufferTTL" line && [[ $SECONDS -lt "$bufferTOD" ]]; do
            # Append line to buffer array
            buffer+=("$line");
-       done;
+       done < /dev/stdin;
+       # End script if buffer array empty (ex: EOF found in stdin)
+       if [[ ${#buffer[@]} -eq 0 ]]; then
+           yell "ERROR:$fn:Empty array:buffer:${buffer[@]}"; exit 1;
+       fi;
        # Mark time for buffer
        ## Initial time
        if [[ bufferRound -gt 0 ]]; then