summaryrefslogtreecommitdiffstats
path: root/web/netdata-switch-dashboard.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'web/netdata-switch-dashboard.sh.in')
-rw-r--r--web/netdata-switch-dashboard.sh.in60
1 files changed, 60 insertions, 0 deletions
diff --git a/web/netdata-switch-dashboard.sh.in b/web/netdata-switch-dashboard.sh.in
new file mode 100644
index 0000000000..c09ff6b936
--- /dev/null
+++ b/web/netdata-switch-dashboard.sh.in
@@ -0,0 +1,60 @@
+#!/bin/sh
+# SPDX-License-Identifier: GPL-3.0-or-later
+# (c) 2020 Netdata Incorporated
+
+set -e
+
+webdir="@webdir_POST@"
+configdir="@configdir_POST@"
+
+usage() {
+ cat << EOF
+USAGE: switch-netdata-dashboard.sh <dashboard-name>
+
+<dashboard-name> is required, it specifies which dashboard to use. Valid
+arguments are 'react' to use the new React dashboard, and 'classic'
+to use the old dashboard.
+
+Once run, you can use the new dashboard by performing a valdiating reload
+in your browser (Ctrl-Shift-R in most browsers).
+EOF
+exit 1
+}
+
+switch_dashboard() {
+ new="${1}"
+ path="${webdir}-${new}"
+
+ echo "Switching to ${new} dashboard..."
+
+ for dashboard in classic react ; do
+ # shellcheck disable=SC2013
+ for item in $(cat ${webdir}-${dashboard}/.files) ; do
+ rm -f "${webdir}/${item}"
+ done
+ done
+
+ cp -a "${path}/." "${webdir}"
+
+ if [ -e "${configdir}/.environment" ] ; then
+ if grep -q NETDATA_SELECTED_DASHBOARD "${configdir}/.environment" ; then
+ sed -E "s/^NETDATA_SELECTED_DASHBOARD=\".*\"$/NETDATA_SELECTED_DASHBOARD=\"${new}\"/" "${configdir}/.environment"
+ else
+ echo "NETDATA_SELECTED_DASHBOARD=\"${new}\"" >> "${configdir}/.environment"
+ fi
+ fi
+
+ exit 0
+}
+
+case "${1}" in
+ react)
+ switch_dashboard react
+ ;;
+ classic)
+ switch_dashboard classic
+ ;;
+ *)
+ usage
+ ;;
+esac