feat(bkgpslog):Append to preexisting tar if possible
authorSteven Baltakatei Sandoval <baltakatei@gmail.com>
Wed, 1 Jul 2020 20:27:41 +0000 (20:27 +0000)
committerSteven Baltakatei Sandoval <baltakatei@gmail.com>
Wed, 1 Jul 2020 20:27:41 +0000 (20:27 +0000)
exec/bkgpslog

index d0dde14f6b77523ccc21447fd8363c768a203dcd..840a0c63a5fd928d73329d57b31a2464646894fa 100755 (executable)
@@ -698,8 +698,19 @@ main() {
     PATHOUT_TAR="$DIR_OUT"/"$(dateShort)".."$SCRIPT_HOSTNAME""_location""$CMD_COMPRESS_SUFFIX""$CMD_ENCRYPT_SUFFIX".tar 
     ## 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:""$PATHOUT_TAR"" created."
+    ## Check if PATHOUT_TAR already exists.
+    if [[ -f "$PATHOUT_TAR" ]]; then
+       ### Check if preexisting tar is appendable.
+       PATHOUT_APPENDTEST="$DIR_TMP"/"$(dateTimeShort)..append_test.txt"
+       echo "$(dateTimeShort)" >> "$PATHOUT_APPENDTEST"; && vbm "DEBUG:""$PATHOUT_APPENDTEST"" created."
+       if ! tar --append --directory="$DIR_TMP" --file="$PATHOUT_TAR" "$(basename "$PATHOUT_APPENDTEST")"; then
+           ### If not appendable, label tar broken, move tar, proceed.
+           mv "$PATHOUT_TAR" "${PATHOUT_TAR%.*}""-broken$(dateTimeShort)".tar
+       fi
+    else
+       ### If (no preexisting|appendable) tar found, create empty tar archive at PATHOUT_TAR
+       try tar --create --directory="$DIR_TMP" --file="$PATHOUT_TAR" --files-from=/dev/null && vbm "DEBUG:""$PATHOUT_TAR"" created."
+    fi 
     ## Append VERSION file to PATHOUT_TAR
     try tar --append --directory="$DIR_TMP" --file="$PATHOUT_TAR" "VERSION" && vbm "DEBUG:VERSION added to $PATHOUT_TAR"