Properly handle interactivity in the updater code. (#13209)
* Clean up updater option parsing. This will make the remaining changes simpler, and also ease maintenance long-term. * Add updater options to override interactivity detection. * Pass interactivity from kickstart to updater when invoking updater.
Austin S. Hemmelgarn committed
Jun 27, 2022 at 07:44 UTC
b8bfe953fbc8b35e13bd85975d4b23b90a6346b8
2 files changed
+32
-23
packaging/installer/kickstart.sh
+7
-1
@@ -705,11 +705,17 @@ update() {
705
return 0
706
fi
707
708
+ if [ "${INTERACTIVE}" -eq 0 ]; then
709
+ opts="--non-interactive"
710
+ else
711
+ opts="--interactive"
712
+ fi
713
+
714
export NETDATA_SAVE_WARNINGS=1
715
export NETDATA_PROPAGATE_WARNINGS=1
716
# shellcheck disable=SC2090
717
export NETDATA_WARNINGS="${NETDATA_WARNINGS}"
712
- if run ${ROOTCMD} "${updater}" --not-running-from-cron; then
718
+ if run ${ROOTCMD} "${updater}" ${opts} --not-running-from-cron; then
719
progress "Updated existing install at ${ndprefix}"
720
return 0
721
else
packaging/installer/netdata-updater.sh
+25
-22
@@ -28,7 +28,7 @@
28
# Author: Pavlos Emm. Katsoulakis <paul@netdata.cloud>
29
# Author: Austin S. Hemmelgarn <austin@netdata.cloud>
30
31
-# Next unused error code: U001A
31
+# Next unused error code: U001B
32
33
set -e
34
@@ -850,27 +850,30 @@ if [ -r "$(dirname "${ENVIRONMENT_FILE}")/.install-type" ]; then
850
fi
851
852
while [ -n "${1}" ]; do
853
- if [ "${1}" = "--not-running-from-cron" ]; then
854
- NETDATA_NOT_RUNNING_FROM_CRON=1
855
- shift 1
856
- elif [ "${1}" = "--no-updater-self-update" ]; then
857
- NETDATA_NO_UPDATER_SELF_UPDATE=1
858
- shift 1
859
- elif [ "${1}" = "--force-update" ]; then
860
- NETDATA_FORCE_UPDATE=1
861
- shift 1
862
- elif [ "${1}" = "--tmpdir-path" ]; then
863
- NETDATA_TMPDIR_PATH="${2}"
864
- shift 2
865
- elif [ "${1}" = "--enable-auto-updates" ]; then
866
- enable_netdata_updater "${2}"
867
- exit $?
868
- elif [ "${1}" = "--disable-auto-updates" ]; then
869
- disable_netdata_updater
870
- exit $?
871
- else
872
- break
873
- fi
853
+ case "${1}" in
854
+ --not-running-from-cron) NETDATA_NOT_RUNNING_FROM_CRON=1 ;;
855
+ --no-updater-self-update) NETDATA_NO_UPDATER_SELF_UPDATE=1 ;;
856
+ --force-update) NETDATA_FORCE_UPDATE=1 ;;
857
+ --non-interactive) INTERACTIVE=0 ;;
858
+ --interactive) INTERACTIVE=1 ;;
859
+ --tmpdir-path)
860
+ NETDATA_TMPDIR_PATH="${2}"
861
+ shift 1
862
+ ;;
863
+ --enable-auto-updates)
864
+ enable_netdata_updater "${2}"
865
+ exit $?
866
+ ;;
867
+ --disable-auto-updates)
868
+ disable_netdata_updater
869
+ exit $?
870
+ ;;
871
+ *)
872
+ fatal "Unrecognized option ${1}" U001A
873
+ ;;
874
+ esac
875
+
876
+ shift 1
877
done
878
879
# Random sleep to alleviate stampede effect of Agents upgrading