11#! /usr/bin/env bash
2- source <( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/raw/main/garmin-grafana/ misc/build.func)
2+ source <( curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/raw/main/misc/build.func)
33# Copyright (c) 2021-2025 community-scripts ORG
44# Author: aliaksei135
55# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
@@ -21,74 +21,74 @@ catch_errors
2121
2222# this only updates garmin-grafana, not influxdb or grafana, which are upgraded with apt
2323function update_script() {
24- header_info
25- check_container_storage
26- check_container_resources
24+ header_info
25+ check_container_storage
26+ check_container_resources
2727
28- if [[ ! -d /opt/garmin-grafana/ ]]; then
29- msg_error " No ${APP} Installation Found!"
30- exit
31- fi
28+ if [[ ! -d /opt/garmin-grafana/ ]]; then
29+ msg_error " No ${APP} Installation Found!"
30+ exit
31+ fi
3232
33- RELEASE=$( curl -fsSL https://api.github.com/repos/arpanghosh8453/garmin-grafana/releases/latest | grep " tag_name" | awk ' {print substr($2, 2, length($2)-3) }' )
34- if [[ ! -d /opt/garmin-grafana/ ]] || [[ " ${RELEASE} " != " $( cat /opt/${APP} _version.txt) " ]] || [[ ! -f /opt/${APP} _version.txt ]]; then
35- msg_info " Stopping $APP "
36- systemctl stop garmin-grafana
37- systemctl stop grafana-server
38- systemctl stop influxdb
39- msg_ok " Stopped $APP "
33+ RELEASE=$( curl -fsSL https://api.github.com/repos/arpanghosh8453/garmin-grafana/releases/latest | grep " tag_name" | awk ' {print substr($2, 2, length($2)-3) }' )
34+ if [[ ! -d /opt/garmin-grafana/ ]] || [[ " ${RELEASE} " != " $( cat /opt/${APP} _version.txt) " ]] || [[ ! -f /opt/${APP} _version.txt ]]; then
35+ msg_info " Stopping $APP "
36+ systemctl stop garmin-grafana
37+ systemctl stop grafana-server
38+ systemctl stop influxdb
39+ msg_ok " Stopped $APP "
4040
41- if [[ ! -f /opt/garmin-grafana/.env ]]; then
42- msg_error " No .env file found in /opt/garmin-grafana/.env"
43- exit
44- fi
45- source /opt/garmin-grafana/.env
46- if [[ -z " ${INFLUXDB_USER} " || -z " ${INFLUXDB_PASSWORD} " || -z " ${INFLUXDB_NAME} " ]]; then
47- msg_error " INFLUXDB_USER, INFLUXDB_PASSWORD, or INFLUXDB_NAME not set in .env file"
48- exit
49- fi
41+ if [[ ! -f /opt/garmin-grafana/.env ]]; then
42+ msg_error " No .env file found in /opt/garmin-grafana/.env"
43+ exit
44+ fi
45+ source /opt/garmin-grafana/.env
46+ if [[ -z " ${INFLUXDB_USER} " || -z " ${INFLUXDB_PASSWORD} " || -z " ${INFLUXDB_NAME} " ]]; then
47+ msg_error " INFLUXDB_USER, INFLUXDB_PASSWORD, or INFLUXDB_NAME not set in .env file"
48+ exit
49+ fi
5050
51- msg_info " Creating Backup"
52- tar -czf " /opt/${APP} _backup_$( date +%F) .tar.gz" /opt/garmin-grafana/.garminconnect /opt/garmin-grafana/.env
53- mv /opt/garmin-grafana/ /opt/garmin-grafana-backup/
54- msg_ok " Backup Created"
51+ msg_info " Creating Backup"
52+ tar -czf " /opt/${APP} _backup_$( date +%F) .tar.gz" /opt/garmin-grafana/.garminconnect /opt/garmin-grafana/.env
53+ mv /opt/garmin-grafana/ /opt/garmin-grafana-backup/
54+ msg_ok " Backup Created"
5555
56- msg_info " Updating $APP to v${RELEASE} "
57- curl -fsSL -o " ${RELEASE} .zip" " https://github.com/arpanghosh8453/garmin-grafana/archive/refs/tags/${RELEASE} .zip"
58- unzip -q " ${RELEASE} .zip"
59- mv " garmin-grafana-${RELEASE} /" " /opt/garmin-grafana"
60- rm -f " ${RELEASE} .zip"
61- $STD uv sync --locked --project /opt/garmin-grafana/
62- # shellcheck disable=SC2016
63- sed -i ' s/\${DS_GARMIN_STATS}/garmin_influxdb/g' /opt/garmin-grafana/Grafana_Dashboard/Garmin-Grafana-Dashboard.json
64- sed -i ' s/influxdb:8086/localhost:8086/' /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
65- sed -i " s/influxdb_user/${INFLUXDB_USER} /" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
66- sed -i " s/influxdb_secret_password/${INFLUXDB_PASSWORD} /" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
67- sed -i " s/GarminStats/${INFLUXDB_NAME} /" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
68- # Copy across grafana data
69- cp -r /opt/garmin-grafana/Grafana_Datasource/* /etc/grafana/provisioning/datasources
70- cp -r /opt/garmin-grafana/Grafana_Dashboard/* /etc/grafana/provisioning/dashboards
71- # Copy back the env and token files
72- cp /opt/garmin-grafana-backup/.env /opt/garmin-grafana/.env
73- cp -r /opt/garmin-grafana-backup/.garminconnect /opt/garmin-grafana/.garminconnect
74- msg_ok " Updated $APP to v${RELEASE} "
56+ msg_info " Updating $APP to v${RELEASE} "
57+ curl -fsSL -o " ${RELEASE} .zip" " https://github.com/arpanghosh8453/garmin-grafana/archive/refs/tags/${RELEASE} .zip"
58+ unzip -q " ${RELEASE} .zip"
59+ mv " garmin-grafana-${RELEASE} /" " /opt/garmin-grafana"
60+ rm -f " ${RELEASE} .zip"
61+ $STD uv sync --locked --project /opt/garmin-grafana/
62+ # shellcheck disable=SC2016
63+ sed -i ' s/\${DS_GARMIN_STATS}/garmin_influxdb/g' /opt/garmin-grafana/Grafana_Dashboard/Garmin-Grafana-Dashboard.json
64+ sed -i ' s/influxdb:8086/localhost:8086/' /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
65+ sed -i " s/influxdb_user/${INFLUXDB_USER} /" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
66+ sed -i " s/influxdb_secret_password/${INFLUXDB_PASSWORD} /" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
67+ sed -i " s/GarminStats/${INFLUXDB_NAME} /" /opt/garmin-grafana/Grafana_Datasource/influxdb.yaml
68+ # Copy across grafana data
69+ cp -r /opt/garmin-grafana/Grafana_Datasource/* /etc/grafana/provisioning/datasources
70+ cp -r /opt/garmin-grafana/Grafana_Dashboard/* /etc/grafana/provisioning/dashboards
71+ # Copy back the env and token files
72+ cp /opt/garmin-grafana-backup/.env /opt/garmin-grafana/.env
73+ cp -r /opt/garmin-grafana-backup/.garminconnect /opt/garmin-grafana/.garminconnect
74+ msg_ok " Updated $APP to v${RELEASE} "
7575
76- msg_info " Starting $APP "
77- systemctl start garmin-grafana
78- systemctl start grafana-server
79- systemctl start influxdb
80- msg_ok " Started $APP "
76+ msg_info " Starting $APP "
77+ systemctl start garmin-grafana
78+ systemctl start grafana-server
79+ systemctl start influxdb
80+ msg_ok " Started $APP "
8181
82- msg_info " Cleaning Up"
83- rm -rf /opt/garmin-grafana-backup
84- msg_ok " Cleanup Completed"
82+ msg_info " Cleaning Up"
83+ rm -rf /opt/garmin-grafana-backup
84+ msg_ok " Cleanup Completed"
8585
86- echo " ${RELEASE} " > /opt/${APP} _version.txt
87- msg_ok " Update Successful"
88- else
89- msg_ok " No update required. ${APP} is already at v${RELEASE} "
90- fi
91- exit
86+ echo " ${RELEASE} " > /opt/${APP} _version.txt
87+ msg_ok " Update Successful"
88+ else
89+ msg_ok " No update required. ${APP} is already at v${RELEASE} "
90+ fi
91+ exit
9292}
9393
9494start
0 commit comments