X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02.git/blobdiff_plain/6cbe7c0a7676ceb597d517210d098a372c9ccefd..1edc8374df4e44a31194ac4527624ce5564da61f:/exec/bklog?ds=inline diff --git a/exec/bklog b/exec/bklog index 4d75249..b908ad9 100644 --- a/exec/bklog +++ b/exec/bklog @@ -1,38 +1,66 @@ #!/bin/bash # Desc: Compresses, encrypts, and writes stdin every 5 seconds +#==BEGIN Define script parameters== +#===BEGIN Initialize variables=== + +# Logging Behavior parameters +scriptTTL_TE="day"; # Time element at the end of which script terminates +scriptTTL="15"; # (temp) Time (seconds) until script terminates +bufferTTL="5"; # Time-to-live (seconds) for each buffer round +dirTempDefault="/dev/shm"; # Default parent of working directory + +# Script Metadata +scriptVersion="0.1.1"; # Define version of script. +scriptName="bklog"; # Define basename of script file. +PATH="$HOME/.local/bin:$PATH"; # Add "$(systemd-path user-binaries)" path in case user apps saved there + +# Arrays +declare -a buffer # Initialize buffer array + +# Variables + +#===END Initialize variables=== + +#===BEGIN Declare local script functions=== yell() { echo "$0: $*" >&2; } #o Yell, Die, Try Three-Fingered Claw technique die() { yell "$*"; exit 111; } #o Ref/Attrib: https://stackoverflow.com/a/25515370 try() { "$@" || die "cannot $*"; } #o -declare -a buffer # Initialize buffer array -scriptTTL="15"; -bufferTTL="5"; -magicWriteBuffer() { - printf "%s\n" "${buffer[@]}" | cat | cat | cat >> /dev/shm/$(date +%s)..bkFreqWrite-output1.txt; - printf "%s\n" "${buffer[@]}" | cat | cat | cat >> /dev/shm/$(date +%s)..bkFreqWrite-output2.txt; - printf "%s\n" "${buffer[@]}" | cat | cat | cat >> /dev/shm/$(date +%s)..bkFreqWrite-output3.txt; +magicProcessWriteBuffer() { + printf "%s\\n" "${buffer[@]}" | cat | cat | cat >> "/dev/shm/$(date +%s)..bkFreqWrite-output1.txt"; + printf "%s\\n" "${buffer[@]}" | cat | cat | cat >> "/dev/shm/$(date +%s)..bkFreqWrite-output2.txt"; + printf "%s\\n" "${buffer[@]}" | cat | cat | cat >> "/dev/shm/$(date +%s)..bkFreqWrite-output3.txt"; +} # Process and Write buffer +main() { + bufferRound=0; + # Run until script TTL seconds pass + while [[ $SECONDS -lt "scriptTTL" ]]; do + bufferTOD="$((SECONDS + bufferTTL))"; + lineCount=0; + # Consume stdin to fill buffer until buffer time-of-death (TOD) arrives + while read -r -t "$bufferTTL" line && [[ $SECONDS -lt "$bufferTOD" ]]; do + # Append line to buffer array + buffer+=("$line"); + echo "DEBUG:Processing line:$lineCount"; + echo "DEBUG:Current line :$line"; + echo "DEBUG:buf elem count :${#buffer[@]}"; + ((lineCount++)); + done; + # Export buffer to asynchronous processing. + magicProcessWriteBuffer & + unset buffer; # Clear buffer array for next bufferRound + # Increment buffer round + ((bufferRound++)); + done; } -bufferRound=0; -# Run until script TTL seconds pass -while [[ $SECONDS -lt "scriptTTL" ]]; do - bufferTOD="$((SECONDS + $bufferTTL))"; - lineCount=0; - # Consume stdin to fill buffer until buffer time-of-death (TOD) arrives - while read -r -t "$bufferTTL" line && [[ $SECONDS -lt "$bufferTOD" ]]; do - # Append line to buffer array - buffer+=("$line"); - echo "DEBUG:Processing line:$lineCount"; - echo "DEBUG:Current line :$line"; - echo "DEBUG:buf elem count :${#buffer[@]}"; - ((lineCount++)); - done; - # Export buffer to asynchronous processing. - magicWriteBuffer & - unset buffer; # Clear buffer array for next bufferRound - # Increment buffer round - ((bufferRound++)); -done; - -# Author: Steven Baltakatei Sandoval +#===END Declare local script functions=== +#==END Define script parameters== + +#==BEGIN Perform work and exit== +main "$@" # Run main function. +exit 0; +#==END Perform work and exit== + +# Author: Steven Baltakatei Sandoval; # License: GPLv3+