X-Git-Url: https://zdv2.bktei.com/gitweb/EVA-2020-02.git/blobdiff_plain/2af0d7d96c90373af486d08702e4e743f515a0a6..6010b172745d339ff822d65519b629a202e28c4b:/exec/bkgpslog?ds=inline diff --git a/exec/bkgpslog b/exec/bkgpslog index 6739f01..c3eeef8 100755 --- a/exec/bkgpslog +++ b/exec/bkgpslog @@ -14,7 +14,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.3.10"; # Define version of script. +SCRIPT_VERSION="0.4.2"; # 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) @@ -975,7 +975,7 @@ magicGatherWriteBuffer() { } # write buffer to disk magicParseRecipientDir() { # Desc: Updates recPubKeysValid with pubkeys in dir specified by '-R' option ("recipient directory") - # Inputs: vars: OPTION_RECDIR, argRecDir, OPTION_ENCRYPTION + # Inputs: vars: OPTION_RECDIR, argRecDir, OPTION_ENCRYPT # arry: recPubKeysValid # Outputs: arry: recPubKeysValid # Depends: processArguments, @@ -983,23 +983,23 @@ magicParseRecipientDir() { declare -a candRecPubKeysValid # Check that '-e' and '-R' set - if [[ "$OPTION_ENCRYPTION" = "true" ]] && [[ "$OPTION_RECDIR" = "true" ]]; then + if [[ "$OPTION_ENCRYPT" = "true" ]] && [[ "$OPTION_RECDIR" = "true" ]]; then ### Check that argRecDir is a directory. if [[ -d "$argRecDir" ]]; then - recipientDir="$argRecDir"; + recipientDir="$argRecDir" && vbm "STATUS:Recipient watch directory detected:\"$recipientDir\""; #### Initialize variable indicating outcome of pubkey review unset updateRecipients #### Add existing recipients - candRecPubKeysValid=("${recPubKeysValid[@]}"); + candRecPubKeysValid=("${recPubKeysValidStatic[@]}"); #### Parse files in recipientDir for file in "$recipientDir"/*; do ##### Read first line of each file - recFileLine="$(head -n1 "$file")"; + recFileLine="$(head -n1 "$file")" && vbm "STATUS:Checking if pubkey:\"$recFileLine\""; ##### check if first line is a valid pubkey if checkAgePubkey "$recFileLine" && \ ( validateInput "$recFileLine" "ssh_pubkey" || validateInput "$recFileLine" "age_pubkey"); then ###### T: add candidate pubkey to candRecPubKeysValid - candRecPubKeysValid+=("$recFileLine"); + candRecPubKeysValid+=("$recFileLine") && vbm "STATUS:RecDir pubkey is valid pubkey:\"$recFileLine\""; else ###### F: throw warning; yell "ERROR:Invalid recipient file detected. Not modifying recipient list." @@ -1008,17 +1008,17 @@ magicParseRecipientDir() { done #### Write updated recPubKeysValid array to recPubKeysValid if no failure detected if ! [[ "$updateRecipients" = "false" ]]; then - recPubKeysValid=("${candRecPubKeysValid[@]}"); + recPubKeysValid=("${candRecPubKeysValid[@]}") && vbm "STATUS:Wrote candRecPubkeysValid to recPubKeysValid:\"${recPubKeysValid[@]}\""; fi; else yell "ERROR:$0:Recipient directory $argRecDir does not exist. Exiting."; exit 1; fi; fi; # Handle case if '-e' set but '-R' not set - if [[ "$OPTION_ENCRYPTION" = "true" ]] && [[ ! "$OPTION_RECDIR" = "true" ]]; then + if [[ "$OPTION_ENCRYPT" = "true" ]] && [[ ! "$OPTION_RECDIR" = "true" ]]; then yell "ERROR: \\'-e\\' set but \\'-R\\' is not set."; fi; # Handle case if '-R' set but '-e' not set - if [[ ! "$OPTION_ENCRYPTION" = "true" ]] && [[ "$OPTION_RECDIR" = "true" ]]; then + if [[ ! "$OPTION_ENCRYPT" = "true" ]] && [[ "$OPTION_RECDIR" = "true" ]]; then yell "ERROR: \\'-R\\' is set but \\'-e\\' is not set."; fi; } # Update recPubKeysValid with argRecDir magicParseRecipientArgs() { @@ -1026,7 +1026,7 @@ magicParseRecipientArgs() { # Input: vars: OPTION_ENCRYPT from processArguments() # arry: argRecPubKeys from processArguments() # Output: vars: CMD_ENCRYPT, CMD_ENCRYPT_SUFFIX - # arry: recPubKeysValid + # arry: recPubKeysValid, recPubKeysValidStatic # Depends: checkapp(), checkAgePubkey(), validateInput(), processArguments() local recipients @@ -1048,6 +1048,8 @@ magicParseRecipientArgs() { fi; done vbm "DEBUG:Finished processing argRecPubKeys array"; + vbm "STATUS:Array of validated pubkeys:${recPubKeysValid[@]}"; + recPubKeysValidStatic="${recPubKeysValid[@]}"; # Save static image of pubkeys validated by this function ## Form age command string CMD_ENCRYPT="age ""$recipients " && vbm "CMD_ENCRYPT:$CMD_ENCRYPT"; @@ -1162,7 +1164,7 @@ main() { magicInitWorkingDir; # Sets DIR_TMP from argTempDirPriority ### Set output encryption and compression option strings #### React to "-r" ("encryption recipients") option - magicParseRecipientArgs; # Updates recPubKeysValid, CMD_ENCRYPT[_SUFFIX] + magicParseRecipientArgs; # Updates recPubKeysValid, CMD_ENCRYPT[_SUFFIX] from argRecPubKeys #### React to "-c" ("compression") option magicParseCompressionArg; # Updates CMD_COMPRESS[_SUFFIX] #### React to "-R" ("recipient directory") option @@ -1201,6 +1203,7 @@ main() { # MAIN LOOP:Record gps data until script lifespan ends while [[ "$SECONDS" -lt "$SCRIPT_TTL" ]]; do + magicParseRecipientDir magicGatherWriteBuffer & sleep "$BUFFER_TTL"; done