From 23225bee1951988b729909f77a531e0e580b4b2e Mon Sep 17 00:00:00 2001 From: "Costa Tsaousis (ktsaou)" Date: Tue, 2 Feb 2016 03:13:58 +0200 Subject: [PATCH] added more installer options (--dont-wait, --dont-start-it, --help) and info --- netdata-installer.sh | 154 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 134 insertions(+), 20 deletions(-) diff --git a/netdata-installer.sh b/netdata-installer.sh index 95409b88..fc87347e 100755 --- a/netdata-installer.sh +++ b/netdata-installer.sh @@ -2,21 +2,123 @@ LC_ALL=C +# you can set CFLAGS before running installer +CFLAGS="${CFLAGS--O3}" + +ME="$0" +DONOTSTART=0 +DONOTWAIT=0 +NETDATA_PREFIX= +ZLIB_IS_HERE=0 + +usage() { + cat < + +Valid are: + + --install /PATH/TO/INSTALL + + If your give: --install /opt + netdata will be installed in /opt/netdata + + --dont-start-it + + Do not (re)start netdata. + Just install it. + + --dont-wait + + Do not wait for the user to press ENTER. + Start immediately building it. + + --zlib-is-really-here + + If you get errors about missing zlib, + but you know it is available, + you have a broken pkg-config. + Use this option to allow it continue + without checking pkg-config. + +Netdata will by default be compiled with gcc optimization -O3 +If you need to pass different CFLAGS, use something like this: + + CFLAGS="" $ME + +For the installer to complete successfully, you will need +these packages installed: + + gcc make autoconf automake pkg-config zlib1g-dev + +For the plugins, you will at least need: + + curl node + +USAGE +} + +while [ ! -z "${1}" ] +do + if [ "$1" = "--install" ] + then + NETDATA_PREFIX="${2}/netdata" + shift 2 + elif [ "$1" = "--zlib-is-really-here" ] + then + ZLIB_IS_HERE=1 + shift 1 + elif [ "$1" = "--dont-start-it" ] + then + DONOTSTART=1 + shift 1 + elif [ "$1" = "--dont-wait" ] + then + DONOTWAIT=1 + shift 1 + elif [ "$1" = "--help" -o "$1" = "-h" ] + then + usage + exit 1 + else + echo >&2 + echo >&2 "ERROR:" + echo >&2 "I cannot understand option '$1'." + usage + exit 1 + fi +done + cat < " -else - read -p "Press ENTER to build and install netdata to your system > " + if [ ! -z "${NETDATA_PREFIX}" ] + then + read -p "Press ENTER to build and install netdata to '${NETDATA_PREFIX}' > " + else + read -p "Press ENTER to build and install netdata to your system > " + fi fi # reload the profile @@ -52,7 +150,7 @@ build_error() { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -We are very sorry! NetData failed to build... +Sorry! NetData failed to build... You many need to check these: @@ -86,7 +184,7 @@ run() { "${@}" } -if [ "$1" = "--zlib-is-really-here" ] +if [ ${ZLIB_IS_HERE} -eq 1 ] then shift echo >&2 "ok, assuming zlib is really installed." @@ -105,7 +203,7 @@ run ./configure \ --sysconfdir="${NETDATA_PREFIX}/etc" \ --localstatedir="${NETDATA_PREFIX}/var" \ --with-zlib --with-math --with-user=netdata \ - CFLAGS="-O3" || exit 1 + CFLAGS="${CFLAGS}" || exit 1 # remove the build_error hook trap - EXIT @@ -189,6 +287,22 @@ run chown root "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" run chmod 4755 "${NETDATA_PREFIX}/usr/libexec/netdata/plugins.d/apps.plugin" +# ----------------------------------------------------------------------------- +# check if we can re-start netdata + +if [ ${DONOTSTART} -eq 1 ] + then + if [ ! -s "${NETDATA_PREFIX}/etc/netdata/netdata.conf" ] + then + echo >&2 "Generating empty config file in: ${NETDATA_PREFIX}/etc/netdata/netdata.conf" + echo "# Get config from http://127.0.0.1:${NETDATA_PORT}/netdata.conf" >"${NETDATA_PREFIX}/etc/netdata/netdata.conf" + chown "${NETDATA_USER}" "${NETDATA_PREFIX}/etc/netdata/netdata.conf" + chmod 0664 "${NETDATA_PREFIX}/etc/netdata/netdata.conf" + fi + echo >&2 "OK. It is now installed and ready." + exit 0 +fi + # ----------------------------------------------------------------------------- # stop a running netdata -- 2.39.2