From aa2a49f124fb37856d7dc19b66cee3392440c8b5 Mon Sep 17 00:00:00 2001 From: Steven Baltakatei Sandoval Date: Wed, 1 Jul 2020 19:25:47 +0000 Subject: [PATCH 1/1] fix(bkgpslog): Fix broken working dir name - Fix broken working dir variable (was missing script start time) - Remove UTC as default TZ (will use parent shell's env var TZ). Can still be customized using `--time-zone` option - Add logic for creating temporary working directory for possible future `--temp-dir` option. Working dir hard defaults to `/dev/shm` (tmpfs) for now. --- exec/bkgpslog | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/exec/bkgpslog b/exec/bkgpslog index 9210e15..db2e6a4 100755 --- a/exec/bkgpslog +++ b/exec/bkgpslog @@ -2,18 +2,19 @@ # Desc: Records gps data until midnight # Author: Steven Baltakatei Sandoval; License: GPLv3+ -# Usage: bkgpslog --output [output dir] +# Usage: bkgpslog -o [output dir] #==BEGIN Define script parameters== ## Logging Behavior parameters BUFFER_TTL="60"; # time between file writes SCRIPT_TTL="day"; # (day|hour) -TZ="UTC"; export TZ; # Default time zone; overridden by '--time-zone=[str]' option +#### TZ="UTC"; export TZ; # Default time zone; overridden by '--time-zone=[str]' option +DIR_TMP_DEFAULT="/dev/shm"; # Default parent of working directory -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="bkgpslog 0.1.0" # Define version of script. -DIR_TMP="/dev/shm/$(timeStart)..bkgpslog" # Define working directory for temproary files +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="bkgpslog 0.1.0"; # Define version of script. declare -Ag appRollCall # Associative array for storing app status declare -Ag fileRollCall # Associative array for storing file status @@ -602,6 +603,18 @@ setScriptTTL() { main() { processArguments "$@" # Process arguments. + # Determine working directory + if [[ -d "$DIR_TMP_DEFAULT" ]]; then + DIR_TMP_BASE="$DIR_TMP_DEFAULT"; # Use default working directory parent (ex: '/dev/shm') + #### elif [[ -d /tmp ]]; then + #### yell "WARNING:/dev/shm not available. Falling back to /tmp ."; + #### DIR_TMP_BASE="/tmp"; + else + yell "ERROR:No valid working directory available. Exiting."; + exit 1; + fi + DIR_TMP="$DIR_TMP_BASE"/"$SCRIPT_TIME_START""..bkgpslog"; # Define working directory for temproary files + # Set output encryption and compression option strings if [[ "$OPTION_ENCRYPT" = "true" ]]; then # Check if encryption option active. if checkapp age; then # Check that age is available. @@ -661,7 +674,7 @@ main() { ## Write bkgpslog version to DIR_TMP/VERSION echo "$0"" Version:""$SCRIPT_VERSION" >> "$DIR_TMP/VERSION" && vbm "DEBUG:VERSION created." ## Create empty tar archive at PATHOUT_TAR - try tar --create --directory="$DIR_TMP" --file="$PATHOUT_TAR" --files-from=/dev/null && vbm "DEBUG:bufferRam.tar created." + try tar --create --directory="$DIR_TMP" --file="$PATHOUT_TAR" --files-from=/dev/null && vbm "DEBUG:""$PATHOUT_TAR"" created." ## Append VERSION file to PATHOUT_TAR try tar --append --directory="$DIR_TMP" --file="$PATHOUT_TAR" "VERSION" && vbm "DEBUG:VERSION added to $PATHOUT_TAR" @@ -671,7 +684,7 @@ main() { while [[ "$SECONDS" -lt "$scriptTTL" ]]; do # Determine file paths (time is start of buffer period) FILEOUT_BASENAME="$timeStart""--""$bufferTTL_STR""..""$SCRIPT_HOSTNAME""_location" ; # ISO-8601 YYYYmmddTHHMMSS+zzP[$bufferTTL]S - ## Files saved to tmpfs memory (DIR_TMP) + ## Files saved to DIR_TMP PATHOUT_NMEA="$DIR_TMP"/"$FILEOUT_BASENAME".nmea"$CMD_COMPRESS_SUFFIX""$CMD_ENCRYPT_SUFFIX" ; PATHOUT_GPX="$DIR_TMP"/"$FILEOUT_BASENAME".gpx"$CMD_COMPRESS_SUFFIX""$CMD_ENCRYPT_SUFFIX" ; PATHOUT_KML="$DIR_TMP"/"$FILEOUT_BASENAME".kml"$CMD_COMPRESS_SUFFIX""$CMD_ENCRYPT_SUFFIX" ; -- 2.30.2