X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02.git/blobdiff_plain/cf85eedd478725e2ad4cecff021ff6b3045fd0a9..5938a59839cfe7148ba08e6ceabf673b36ff310b:/exec/bkgpslog?ds=sidebyside diff --git a/exec/bkgpslog b/exec/bkgpslog index 0d93d97..58b0465 100755 --- a/exec/bkgpslog +++ b/exec/bkgpslog @@ -1,8 +1,5 @@ #!/bin/bash - -# Desc: Records gps data until midnight -# Author: Steven Baltakatei Sandoval; License: GPLv3+ -# Usage: bkgpslog -o [output dir] +# Desc: Records gps data #==BEGIN Define script parameters== ## Logging Behavior parameters @@ -14,7 +11,7 @@ DIR_TMP_DEFAULT="/dev/shm"; # Default parent of working directory SCRIPT_TIME_START=$(date +%Y%m%dT%H%M%S.%N); PATH="$HOME/.local/bin:$PATH"; # Add "$(systemd-path user-binaries)" path in case apps saved there SCRIPT_HOSTNAME=$(hostname); # Save hostname of system running this script. -SCRIPT_VERSION="0.5.4"; # Define version of script. +SCRIPT_VERSION="0.5.7"; # Define version of script. SCRIPT_NAME="bkgpslog"; # Define basename of script file. SCRIPT_URL="https://gitlab.com/baltakatei/ninfacyzga-01"; # Define wesite hosting this script. AGE_VERSION="1.0.0-beta2"; # Define version of age (encryption program) @@ -391,7 +388,7 @@ dateShort(){ TIME_INPUT="$argTime"; else ### F: Time argument not valid; exit - yell "ERROR:Invalid time argument supplied. Exiting."; exit 1; + yell "ERROR:Invalid time argument supplied: \"$argTime\""; yell "Exiting."; exit 1; fi fi # Construct and deliver separator-les date string @@ -1064,7 +1061,7 @@ magicGatherWriteBuffer() { PATHOUT_BUFFER="$DIR_TMP/buffer$SECONDS" && vbm "PATHOUT_BUFFER:$PATHOUT_BUFFER"; # Fill buffer timeout "$BUFFER_TTL"s gpspipe -r -o "$PATHOUT_BUFFER" ; - timeBufferStartLong="$(date --date="$BUFFER_TTL seconds ago")" && vbm "timeBufferStartLong:$timeBufferStartLong" || yell "ERROR:timeBufferStartLong fail"; + timeBufferStartLong="$(date --date="$BUFFER_TTL seconds ago" --iso-8601=seconds)" && vbm "timeBufferStartLong:$timeBufferStartLong" || yell "ERROR:timeBufferStartLong fail"; timeBufferStart="$(dateTimeShort "$timeBufferStartLong" )" && vbm "timeBufferStart:$timeBufferStart" || yell "ERROR:timeBufferStart fail"; # Note start time # Determine file paths (time is start of buffer period) FILEOUT_BASENAME="$timeBufferStart""--""$bufferTTL_STR""..""$SCRIPT_HOSTNAME""_location" && vbm "STATUS:Set FILEOUT_BASENAME to:$FILEOUT_BASENAME"; @@ -1077,7 +1074,7 @@ magicGatherWriteBuffer() { PATHOUT_KML="$DIR_TMP"/"$FILEOUT_KML" && vbm "STATUS:Set PATHOUT_KML to:$PATHOUT_KML"; ## Files saved to disk (DIR_OUT) ### one file per day (Ex: "20200731..hostname_location.[.gpx.gz].tar") - PATHOUT_TAR="$DIR_OUT"/"$(dateShort "$(date --date="$BUFFER_TTL seconds ago")")".."$SCRIPT_HOSTNAME""_location""$CMD_COMPRESS_SUFFIX""$CMD_ENCRYPT_SUFFIX".tar && \ + PATHOUT_TAR="$DIR_OUT"/"$(dateShort "$(date --date="$BUFFER_TTL seconds ago" --iso-8601=seconds)")".."$SCRIPT_HOSTNAME""_location""$CMD_COMPRESS_SUFFIX""$CMD_ENCRYPT_SUFFIX".tar && \ vbm "STATUS:Set PATHOUT_TAR to:$PATHOUT_TAR"; # DEBUG: check vars vbm "STATUS:FN :$FN"; @@ -1316,10 +1313,10 @@ main() { ## Note: SCRIPT_TTL_TE is time element string (ex: "day") while SCRIPT_TTL is integer seconds # File name substring (ISO-8601 duration from BUFFER_TTL) - bufferTTL_STR="$(timeDuration "$BUFFER_TTL")"; + bufferTTL_STR="$(timeDuration "$BUFFER_TTL")" && vbm "DEBUG:bufferTTL_STR:$bufferTTL_STR"; # Init temp working dir - try mkdir "$DIR_TMP" && vbm "DEBUG:Working dir creatd at:$DIR_TMP"; + try mkdir "$DIR_TMP" && vbm "DEBUG:Working dir created at DIR_TMP:$DIR_TMP"; # Initialize 'tar' archive ## Define output tar path (note: each day gets *one* tar file (Ex: "20200731..hostname_location.[.gpx.gz].tar")) @@ -1338,6 +1335,7 @@ main() { # MAIN LOOP:Record gps data until script lifespan ends timeBufferFirstNS="$(timeEpochNS)"; bufferRound=0; BUFFER_TTL_ADJ_FLOAT="$BUFFER_TTL"; while [[ "$SECONDS" -lt "$SCRIPT_TTL" ]]; do + if ! [[ -d "$DIR_TMP" ]]; then yell "ERROR:DIR_TMP existence failure:$DIR_TMP"; try mkdir "$DIR_TMP" && vbm "DEBUG:Working dir recreated DIR_TMP:$DIR_TMP"; fi magicParseRecipientDir; magicGatherWriteBuffer & sleep "$BUFFER_TTL_ADJ_FLOAT"; # adjusted by magicBufferSleepPID @@ -1347,7 +1345,7 @@ main() { # Cleanup ## Remove DIR_TMP - try rm -r "$DIR_TMP"; + try rm -r "$DIR_TMP" && vbm "Removed DIR_TMP:$DIR_TMP"; vbm "STATUS:Main function finished."; } # Main function. @@ -1359,3 +1357,6 @@ main() { main "$@" # Run main function. exit 0; #==END Perform work and exit== + +# Author: Steven Baltakatei Sandoval; +# License: GPLv3+