File notification and JSON output fixes (#281)

* File notification and JSON output fixes

* Truncate notify file(s) on first write and then append

* Strip wrapping double quotes from Dockcheck update tempcsv variable before jsonification

* Eliminate separate truncate step
This commit is contained in:
vorezal
2026-04-20 14:36:54 -04:00
committed by GitHub
parent 37052d1377
commit e54f225a78
2 changed files with 9 additions and 5 deletions
+7 -3
View File
@@ -1,5 +1,5 @@
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
NOTIFY_FILE_VERSION="v0.1"
NOTIFY_FILE_VERSION="v0.2"
#
# Leave (or place) this file in the "notify_templates" subdirectory within the same directory as the main dockcheck.sh script.
# If you instead wish make your own modifications, make a copy in the same directory as the main dockcheck.sh script.
@@ -13,10 +13,14 @@ trigger_file_notification() {
UpperChannel="FILE"
fi
FileTruncVar="${UpperChannel}_TRUNC"
FilePathVar="${UpperChannel}_PATH"
NotifyFile="${!FilePathVar:=${ScriptWorkDir}/updates_available.txt}"
if [[ ${!FileTruncVar:=0} -eq 0 ]]; then
echo "${MessageBody}" > ${NotifyFile}
declare -g ${FileTruncVar}=1
else
echo "${MessageBody}" >> ${NotifyFile}
fi
}
+1 -1
View File
@@ -205,7 +205,7 @@ format_output() {
FormattedOutput=$(jq --compact-output --null-input --arg updates "${tempcsv}" '($updates | split("\\n")) | map(split(",")) | {"updates": map({"script_name": .[0], "installed_version": .[1], "latest_version": .[2]})}')
elif [[ "${UpdateType}" == "dockcheck_update" ]]; then
# dockcheck update case
FormattedOutput=$(jq --compact-output --null-input --arg updates "${tempcsv}" '($updates | split("\\n")) | map(split(",")) | {"updates": map({"script_name": .[0], "installed_version": .[1], "latest_version": .[2], "release_notes": (.[3:] | join(","))})}')
FormattedOutput=$(jq --compact-output --null-input --arg updates "${tempcsv//\"/}" '($updates | split("\\n")) | map(split(",")) | {"updates": map({"script_name": .[0], "installed_version": .[1], "latest_version": .[2], "release_notes": (.[3:] | join(","))})}')
else
FormattedOutput="Invalid input"
fi