open fd3 before first use (#12491)
Ilya Mashchenko committed
Mar 23, 2022 at 13:42 UTC
1023c3e196fafcc21c10bf3c3c95b88339b82f1a
1 file changed
+34
-34
packaging/installer/netdata-updater.sh
+34
-34
@@ -61,28 +61,6 @@ fatal() {
61
exit 1
62
}
63
64
-: "${ENVIRONMENT_FILE:=THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT}"
65
-
66
-if [ "${ENVIRONMENT_FILE}" = "THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT" ]; then
67
- if [ -r "${script_dir}/../../../etc/netdata/.environment" ] || [ -r "${script_dir}/../../../etc/netdata/.install-type" ]; then
68
- ENVIRONMENT_FILE="${script_dir}/../../../etc/netdata/.environment"
69
- elif [ -r "/etc/netdata/.environment" ] || [ -r "/etc/netdata/.install-type" ]; then
70
- ENVIRONMENT_FILE="/etc/netdata/.environment"
71
- elif [ -r "/opt/netdata/etc/netdata/.environment" ] || [ -r "/opt/netdata/etc/netdata/.install-type" ]; then
72
- ENVIRONMENT_FILE="/opt/netdata/etc/netdata/.environment"
73
- else
74
- envpath="$(find / -type d \( -path /sys -o -path /proc -o -path /dev \) -prune -false -o -path '*netdata/.environment' -type f 2> /dev/null | head -n 1)"
75
- itpath="$(find / -type d \( -path /sys -o -path /proc -o -path /dev \) -prune -false -o -path '*netdata/.install-type' -type f 2> /dev/null | head -n 1)"
76
- if [ -r "${envpath}" ]; then
77
- ENVIRONMENT_FILE="${envpath}"
78
- elif [ -r "${itpath}" ]; then
79
- ENVIRONMENT_FILE="$(dirname "${itpath}")/.environment"
80
- else
81
- fatal "Cannot find environment file or install type file, unable to update."
82
- fi
83
- fi
84
-fi
85
-
64
issystemd() {
65
# if the directory /lib/systemd/system OR /usr/lib/systemd/system (SLES 12.x) does not exit, it is not systemd
66
if [ ! -d /lib/systemd/system ] && [ ! -d /usr/lib/systemd/system ]; then
@@ -774,6 +752,40 @@ ndtmpdir=
752
753
trap cleanup EXIT
754
755
+if [ -t 2 ]; then
756
+ # we are running on a terminal
757
+ # open fd 3 and send it to stderr
758
+ exec 3>&2
759
+else
760
+ # we are headless
761
+ # create a temporary file for the log
762
+ logfile="$(mktemp -t netdata-updater.log.XXXXXX)"
763
+ # open fd 3 and send it to logfile
764
+ exec 3> "${logfile}"
765
+fi
766
+
767
+: "${ENVIRONMENT_FILE:=THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT}"
768
+
769
+if [ "${ENVIRONMENT_FILE}" = "THIS_SHOULD_BE_REPLACED_BY_INSTALLER_SCRIPT" ]; then
770
+ if [ -r "${script_dir}/../../../etc/netdata/.environment" ] || [ -r "${script_dir}/../../../etc/netdata/.install-type" ]; then
771
+ ENVIRONMENT_FILE="${script_dir}/../../../etc/netdata/.environment"
772
+ elif [ -r "/etc/netdata/.environment" ] || [ -r "/etc/netdata/.install-type" ]; then
773
+ ENVIRONMENT_FILE="/etc/netdata/.environment"
774
+ elif [ -r "/opt/netdata/etc/netdata/.environment" ] || [ -r "/opt/netdata/etc/netdata/.install-type" ]; then
775
+ ENVIRONMENT_FILE="/opt/netdata/etc/netdata/.environment"
776
+ else
777
+ envpath="$(find / -type d \( -path /sys -o -path /proc -o -path /dev \) -prune -false -o -path '*netdata/.environment' -type f 2> /dev/null | head -n 1)"
778
+ itpath="$(find / -type d \( -path /sys -o -path /proc -o -path /dev \) -prune -false -o -path '*netdata/.install-type' -type f 2> /dev/null | head -n 1)"
779
+ if [ -r "${envpath}" ]; then
780
+ ENVIRONMENT_FILE="${envpath}"
781
+ elif [ -r "${itpath}" ]; then
782
+ ENVIRONMENT_FILE="$(dirname "${itpath}")/.environment"
783
+ else
784
+ fatal "Cannot find environment file or install type file, unable to update."
785
+ fi
786
+ fi
787
+fi
788
+
789
if [ -r "${ENVIRONMENT_FILE}" ] ; then
790
# shellcheck source=/dev/null
791
. "${ENVIRONMENT_FILE}" || exit 1
@@ -830,18 +842,6 @@ if [ "${INSTALL_UID}" != "$(id -u)" ]; then
842
fatal "You are running this script as user with uid $(id -u). We recommend to run this script as root (user with uid 0)"
843
fi
844
833
-if [ -t 2 ]; then
834
- # we are running on a terminal
835
- # open fd 3 and send it to stderr
836
- exec 3>&2
837
-else
838
- # we are headless
839
- # create a temporary file for the log
840
- logfile="$(mktemp -t netdata-updater.log.XXXXXX)"
841
- # open fd 3 and send it to logfile
842
- exec 3> "${logfile}"
843
-fi
844
-
845
self_update
846
847
# shellcheck disable=SC2153