From 2ad9b1bd641eab2daae9c461656a56c8c2688485 Mon Sep 17 00:00:00 2001 From: Andreas Gerstmayr Date: Wed, 22 Jun 2022 16:57:52 +0200 Subject: [PATCH] update grafana-cli script with distro-specific paths and switch to grafana user diff --git a/packaging/wrappers/grafana-cli b/packaging/wrappers/grafana-cli index dafa075a2c..eda358c425 100755 --- a/packaging/wrappers/grafana-cli +++ b/packaging/wrappers/grafana-cli @@ -5,18 +5,19 @@ # the system-wide Grafana configuration that was bundled with the package as we # use the binary. -DEFAULT=/etc/default/grafana +DEFAULT=/etc/sysconfig/grafana-server GRAFANA_HOME=/usr/share/grafana CONF_DIR=/etc/grafana DATA_DIR=/var/lib/grafana PLUGINS_DIR=/var/lib/grafana/plugins LOG_DIR=/var/log/grafana +LIBEXEC_DIR=/usr/libexec/grafana CONF_FILE=$CONF_DIR/grafana.ini PROVISIONING_CFG_DIR=$CONF_DIR/provisioning -EXECUTABLE=$GRAFANA_HOME/bin/grafana-cli +EXECUTABLE=$LIBEXEC_DIR/grafana-cli if [ ! -x $EXECUTABLE ]; then echo "Program not installed or not executable" @@ -28,12 +29,21 @@ if [ -f "$DEFAULT" ]; then . "$DEFAULT" fi -OPTS="--homepath=${GRAFANA_HOME} \ - --config=${CONF_FILE} \ - --pluginsDir=${PLUGINS_DIR} \ - --configOverrides='cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR \ - cfg:default.paths.data=${DATA_DIR} \ - cfg:default.paths.logs=${LOG_DIR} \ - cfg:default.paths.plugins=${PLUGINS_DIR}'" - -eval $EXECUTABLE "$OPTS" '$@' +OPTS=("--homepath=${GRAFANA_HOME}" + "--config=${CONF_FILE}" + "--pluginsDir=${PLUGINS_DIR}" + "--configOverrides=cfg:default.paths.provisioning=$PROVISIONING_CFG_DIR \ + cfg:default.paths.data=${DATA_DIR} \ + cfg:default.paths.logs=${LOG_DIR} \ + cfg:default.paths.plugins=${PLUGINS_DIR}") + +if [ "$(id -u)" -eq 0 ]; then + cd "${GRAFANA_HOME}" + exec runuser -u "${GRAFANA_USER}" -- "$EXECUTABLE" "${OPTS[@]}" "$@" +elif [ "$(id -u -n)" = "${GRAFANA_USER}" ]; then + cd "${GRAFANA_HOME}" + exec "$EXECUTABLE" "${OPTS[@]}" "$@" +else + echo "$0: please run this script as user \"${GRAFANA_USER}\" or root." + exit 5 +fi