Fix handling of checks for newer updater script on update. (#12367)
Co-authored-by: Ilya Mashchenko <ilya@netdata.cloud>
Austin S. Hemmelgarn committed
Mar 15, 2022 at 06:59 UTC
410191bcd25958c9a12241dac28519c7009944b6
1 file changed
+16
-5
packaging/installer/netdata-updater.sh
+16
-5
@@ -372,16 +372,27 @@ get_netdata_latest_tag() {
372
newer_commit_date() {
373
info "Checking if a newer version of the updater script is available."
374
375
+ commit_check_url="https://api.github.com/repos/netdata/netdata/commits?path=packaging%2Finstaller%2Fnetdata-updater.sh&page=1&per_page=1"
376
+ python_version_check="from __future__ import print_function;import sys,json;data = json.load(sys.stdin);print(data[0]['commit']['committer']['date'] if isinstance(data, list) else '')"
377
+
378
if command -v jq > /dev/null 2>&1; then
376
- commit_date="$(_safe_download "https://api.github.com/repos/netdata/netdata/commits?path=packaging%2Finstaller%2Fnetdata-updater.sh&page=1&per_page=1" /dev/stdout | jq '.[0].commit.committer.date' | tr -d '"')"
379
+ commit_date="$(_safe_download "${commit_check_url}" /dev/stdout | jq '.[0].commit.committer.date' 2>/dev/null | tr -d '"')"
380
elif command -v python > /dev/null 2>&1;then
378
- commit_date="$(_safe_download "https://api.github.com/repos/netdata/netdata/commits?path=packaging%2Finstaller%2Fnetdata-updater.sh&page=1&per_page=1" /dev/stdout | python -c 'from __future__ import print_function;import sys,json;print(json.load(sys.stdin)[0]["commit"]["committer"]["date"])')"
381
+ commit_date="$(_safe_download "${commit_check_url}" /dev/stdout | python -c "${python_version_check}")"
382
elif command -v python3 > /dev/null 2>&1;then
380
- commit_date="$(_safe_download "https://api.github.com/repos/netdata/netdata/commits?path=packaging%2Finstaller%2Fnetdata-updater.sh&page=1&per_page=1" /dev/stdout | python3 -c 'from __future__ import print_function;import sys,json;print(json.load(sys.stdin)[0]["commit"]["committer"]["date"])')"
383
+ commit_date="$(_safe_download "${commit_check_url}" /dev/stdout | python3 -c "${python_version_check}")"
384
fi
385
386
if [ -z "${commit_date}" ] ; then
384
- commit_date="9999-12-31T23:59:59Z"
387
+ return 0
388
+ elif [ "$(uname)" = "Linux" ]; then
389
+ commit_date="$(date -d "${commit_date}" +%s)"
390
+ else # assume BSD-style `date` if we are not on Linux
391
+ commit_date="$(/bin/date -j -f "%Y-%m-%dT%H:%M:%SZ" "${commit_date}" +%s 2>/dev/null)"
392
+
393
+ if [ -z "${commit_date}" ]; then
394
+ return 0
395
+ fi
396
fi
397
398
if [ -e "${script_source}" ]; then
@@ -390,7 +401,7 @@ newer_commit_date() {
401
script_date="$(date +%s)"
402
fi
403
393
- [ "$(date -d "${commit_date}" +%s)" -ge "${script_date}" ]
404
+ [ "${commit_date}" -ge "${script_date}" ]
405
}
406
407
self_update() {