From ff22a93f33c2a95ac5bff59793b2b02e7576dca3 Mon Sep 17 00:00:00 2001 From: Steven Baltakatei Sandoval Date: Thu, 2 Jul 2020 21:23:34 +0000 Subject: [PATCH] feat(bkgpslog):Include more fields in VERSION These fields are included to automatically-generated VERSION file included when a new tar is generated or the script is restarted: - SCRIPT_VERSION : Version of bkgpslog being run. - SCRIPT_NAME : Name of the script being run ("bkgpslog"). - SCRIPT_URL : URL where script can be downloaded. - AGE_VERSION : Version of age (encryption program) used. - AGE_URL : URL where age can be downloaded. - DATE : Creation timestamp (ISO-8601). - HOSTNAME : Hostname of device running script. - PUBKEY_[n] : Pubkey string used by age to encrypt. --- exec/bkgpslog | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/exec/bkgpslog b/exec/bkgpslog index 9289064..97231f8 100755 --- a/exec/bkgpslog +++ b/exec/bkgpslog @@ -14,8 +14,11 @@ 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="bkgpslog 0.2.1"; # Define version of script. -SCRIPT_NAME="$(basename "$0")"; # Define basename of script file. +SCRIPT_VERSION="0.2.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) +AGE_URL="https://github.com/FiloSottile/age/releases/tag/v1.0.0-beta2"; # Define website hosting age. declare -Ag appRollCall # Associative array for storing app status declare -Ag fileRollCall # Associative array for storing file status @@ -713,20 +716,36 @@ appendArgTar(){ magicWriteVersion() { # Desc: Appends time-stamped VERSION to PATHOUT_TAR # Usage: magicWriteVersion + # Version: 0.1.0 # Input: CONTENT_VERSION, FILEOUT_VERSION, PATHOUT_TAR, DIR_TMP + # Input: SCRIPT_VERSION, SCRIPT_URL, AGE_VERSION, AGE_URL, SCRIPT_HOSTNAME + # Output: appends tar PATHOUT_TAR # Depends: dateTimeShort, appendArgTar - local CONTENT_VERSION + local CONTENT_VERSION pubKeyIndex - # Generate VERSION file in BashVar + # Set VERSION file name FILEOUT_VERSION="$(dateTimeShort)..VERSION"; - CONTENT_VERSION="VERSION=$SCRIPT_VERSION"; - CONTENT_VERSION="$CONTENT_VERSION""\n""SCRIPT_NAME=SCRIPT_NAME"; + + # Gather VERSION data in CONTENT_VERSION + CONTENT_VERSION="SCRIPT_VERSION=$SCRIPT_VERSION"; + #CONTENT_VERSION="$CONTENT_VERSION""\n"; + CONTENT_VERSION="$CONTENT_VERSION""\n""SCRIPT_NAME=$SCRIPT_NAME"; + CONTENT_VERSION="$CONTENT_VERSION""\n""SCRIPT_URL=$SCRIPT_URL"; + CONTENT_VERSION="$CONTENT_VERSION""\n""AGE_VERSION=$AGE_VERSION"; + CONTENT_VERSION="$CONTENT_VERSION""\n""AGE_URL=$AGE_URL"; CONTENT_VERSION="$CONTENT_VERSION""\n""DATE=$(date --iso-8601=seconds)"; CONTENT_VERSION="$CONTENT_VERSION""\n""HOSTNAME=$SCRIPT_HOSTNAME"; + ## Add list of recipient pubkeys + for pubkey in "${recPubKeysValid[@]}"; do + ((pubKeyIndex++)) + CONTENT_VERSION="$CONTENT_VERSION""\n""PUBKEY_$pubKeyIndex=$pubkey"; + done + ## Process newline escapes CONTENT_VERSION="$(echo -e "$CONTENT_VERSION")" - # Create BashVar as file FILEOUT_VERSION and write-append to PATHOUT_TAR + # Write CONTENT_VERSION as file FILEOUT_VERSION and write-append to PATHOUT_TAR appendArgTar "$CONTENT_VERSION" "$FILEOUT_VERSION" "$PATHOUT_TAR" "$DIR_TMP"; + } # bkgpslog: write version data to PATHOUT_TAR via appendArgTar() magicWriteBuffer() { # Desc: bkgpslog-specific meta function for writing data to DIR_TMP then appending each file to PATHOUT_TAR @@ -784,16 +803,19 @@ main() { for pubkey in "${recPubKeys[@]}"; do # Validate recipient pubkey strings by forming test message vbm "DEBUG:Testing pubkey string:$pubkey" if echo "butts" | age -a -r "$pubkey" 1>/dev/null; then - # Form age recipient string + #### Form age recipient string recipients="$recipients""-r $pubkey "; vbm "STATUS:Added pubkey for forming age recipient string:""$pubkey"; vbm "DEBUG:recipients:""$recipients"; + #### Add validated pubkey to recPubKeysValid array + recPubKeysValid+=("$pubkey") && vbm "DEBUG:recPubkeysValid:pubkey added:$pubkey"; else yell "ERROR:Exit code ""$?"". Invalid recipient pubkey string. Exiting."; exit 1; fi done vbm "DEBUG:Finished processing recPubKeys array"; - # Form age command string + + ## Form age command string CMD_ENCRYPT="age ""$recipients "; CMD_ENCRYPT_SUFFIX=".age"; else -- 2.30.2