mirror of
https://github.com/mag37/dockcheck.git
synced 2026-04-21 11:50:43 +00:00
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:
@@ -1,5 +1,5 @@
|
|||||||
### DISCLAIMER: This is a third party addition to dockcheck - best effort testing.
|
### 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.
|
# 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.
|
# 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"
|
UpperChannel="FILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
FileTruncVar="${UpperChannel}_TRUNC"
|
||||||
FilePathVar="${UpperChannel}_PATH"
|
FilePathVar="${UpperChannel}_PATH"
|
||||||
|
|
||||||
NotifyFile="${!FilePathVar:=${ScriptWorkDir}/updates_available.txt}"
|
NotifyFile="${!FilePathVar:=${ScriptWorkDir}/updates_available.txt}"
|
||||||
|
|
||||||
|
if [[ ${!FileTruncVar:=0} -eq 0 ]]; then
|
||||||
echo "${MessageBody}" > ${NotifyFile}
|
echo "${MessageBody}" > ${NotifyFile}
|
||||||
|
declare -g ${FileTruncVar}=1
|
||||||
|
else
|
||||||
|
echo "${MessageBody}" >> ${NotifyFile}
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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]})}')
|
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
|
elif [[ "${UpdateType}" == "dockcheck_update" ]]; then
|
||||||
# dockcheck update case
|
# 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
|
else
|
||||||
FormattedOutput="Invalid input"
|
FormattedOutput="Invalid input"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user