|
@@ -571,6 +571,13 @@ bundle_libwebsockets() {
|
|
|
|
|
|
bundle_libwebsockets
|
|
|
|
|
|
+# -----------------------------------------------------------------------------
|
|
|
+# If we have the dashboard switching logic, make sure we're on the classic
|
|
|
+# dashboard during the install (updates don't work correctly otherwise).
|
|
|
+if [ -x "${NETDATA_PREFIX}/usr/libexec/netdata-switch-dashboard.sh" ] ; then
|
|
|
+ "${NETDATA_PREFIX}/usr/libexec/netdata-switch-dashboard.sh" classic
|
|
|
+fi
|
|
|
+
|
|
|
# -----------------------------------------------------------------------------
|
|
|
echo >&2
|
|
|
progress "Run autotools to configure the build environment"
|
|
@@ -964,6 +971,57 @@ fi
|
|
|
|
|
|
# -----------------------------------------------------------------------------
|
|
|
|
|
|
+copy_react_dashboard() {
|
|
|
+ run rm -rf "${NETDATA_WEB_DIR}-react"
|
|
|
+ run rm -rf "${NETDATA_WEB_DIR}-classic"
|
|
|
+ run cp -a "${1}/" "${NETDATA_WEB_DIR}-react"
|
|
|
+ run cp -a "${NETDATA_WEB_DIR}/dashboard_info.js" "${NETDATA_WEB_DIR}-react"
|
|
|
+ run cp -a "${NETDATA_WEB_DIR}/dashboard.slate.css" "${NETDATA_WEB_DIR}-react"
|
|
|
+ run cp -a "${NETDATA_WEB_DIR}/dashboard.css" "${NETDATA_WEB_DIR}-react"
|
|
|
+ run cp -a "${NETDATA_WEB_DIR}/main.css" "${NETDATA_WEB_DIR}-react"
|
|
|
+ run echo "$(cd ${NETDATA_WEB_DIR}-react && find . -type f | sed -e 's/\.\///')" > "${NETDATA_WEB_DIR}-react/.files"
|
|
|
+ run cp -a "${NETDATA_WEB_DIR}" "${NETDATA_WEB_DIR}-classic"
|
|
|
+ run echo "$(find web/gui -type f | sed -e "s/web\/gui\///")" > "${NETDATA_WEB_DIR}-classic/.files"
|
|
|
+ run chown -R "${NETDATA_WEB_USER}:${NETDATA_WEB_GROUP}" "${NETDATA_WEB_DIR}-react"
|
|
|
+}
|
|
|
+
|
|
|
+install_react_dashboard() {
|
|
|
+ progress "Fetching and installing dashboard"
|
|
|
+
|
|
|
+ DASHBOARD_PACKAGE_VERSION="$(cat packaging/dashboard.version)"
|
|
|
+
|
|
|
+ tmp="$(mktemp -d -t netdata-dashboard-XXXXXX)"
|
|
|
+ DASHBOARD_PACKAGE_BASENAME="dashboard.tar.gz"
|
|
|
+
|
|
|
+ if fetch_and_verify "dashboard" \
|
|
|
+ "https://github.com/netdata/dashboard/releases/download/${DASHBOARD_PACKAGE_VERSION}/${DASHBOARD_PACKAGE_BASENAME}" \
|
|
|
+ "${DASHBOARD_PACKAGE_BASENAME}" \
|
|
|
+ "${tmp}" \
|
|
|
+ "${NETDATA_LOCAL_TARBALL_OVERRIDE_DASHBOARD}"
|
|
|
+ then
|
|
|
+ if run tar -xf "${tmp}/${DASHBOARD_PACKAGE_BASENAME}" -C "${tmp}" && \
|
|
|
+ copy_react_dashboard "${tmp}/build" && \
|
|
|
+ rm -rf "${tmp}"
|
|
|
+ then
|
|
|
+ if run "${NETDATA_PREFIX}/usr/libexec/netdata/netdata-switch-dashboard.sh" "${NETDATA_SELECTED_DASHBOARD:-react}" ; then
|
|
|
+ run_ok "React dashboard installed."
|
|
|
+ else
|
|
|
+ run_failed "Failed to switch to React dashboard."
|
|
|
+ run rm -rf "${NETDATA_WEB_DIR}"
|
|
|
+ run cp -a "${NETDATA_WEB_DIR}-classic" "${NETDATA_WEB_DIR}"
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ run_failed "Failed to install React dashboard. The install process will continue, but you will not be able to use the new dashboard."
|
|
|
+ fi
|
|
|
+ else
|
|
|
+ run_failed "Unable to fetch React dashboard. The install process will continue, but you will not be able to use the new dashboard."
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+install_react_dashboard
|
|
|
+
|
|
|
+# -----------------------------------------------------------------------------
|
|
|
+
|
|
|
# govercomp compares go.d.plugin versions. Exit codes:
|
|
|
# 0 - version1 == version2
|
|
|
# 1 - version1 > version2
|
|
@@ -1512,6 +1570,7 @@ REINSTALL_OPTIONS="${REINSTALL_OPTIONS}"
|
|
|
RELEASE_CHANNEL="${RELEASE_CHANNEL}"
|
|
|
IS_NETDATA_STATIC_BINARY="${IS_NETDATA_STATIC_BINARY}"
|
|
|
NETDATA_LIB_DIR="${NETDATA_LIB_DIR}"
|
|
|
+NETDATA_SELECTED_DASHBOARD="${NETDATA_SELECTED_DASHBOARD:-react}"
|
|
|
EOF
|
|
|
run chmod 0644 "${NETDATA_USER_CONFIG_DIR}/.environment"
|
|
|
|