From 2c3b9b5b287d7f4ad6a93aad2fa689e35debdfe2 Mon Sep 17 00:00:00 2001 From: Dominik Dzienia Date: Fri, 15 Sep 2023 06:58:28 +0000 Subject: [PATCH] Domain detection --- install.sh | 36 ++++++++++++++++++++++++++++++++---- package.json | 2 +- src/lib.sh | 34 +++++++++++++++++++++++++++++++--- src/setup.sh | 2 +- templates/nightscout.env | 6 +++--- updated | 2 +- 6 files changed, 69 insertions(+), 13 deletions(-) diff --git a/install.sh b/install.sh index edcc960..a843942 100644 --- a/install.sh +++ b/install.sh @@ -1,6 +1,6 @@ #!/bin/bash -### version: 1.5.5 +### version: 1.5.6 # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # Nightscout Mikr.us setup script # @@ -34,8 +34,8 @@ MONGO_DB_DIR=/srv/nightscout/data/mongodb TOOL_FILE=/srv/nightscout/tools/nightscout-tool TOOL_LINK=/usr/bin/nightscout-tool UPDATES_DIR=/srv/nightscout/updates -SCRIPT_VERSION="1.5.5" #auto-update -SCRIPT_BUILD_TIME="2023.09.14" #auto-update +SCRIPT_VERSION="1.5.6" #auto-update +SCRIPT_BUILD_TIME="2023.09.15" #auto-update #======================================= # SETUP @@ -880,6 +880,17 @@ domain_setup_manual() { } domain_setup() { + + local domain=$(get_td_domain) + local domainLen=${#domain} + if ((domainLen > 15)); then + + msgcheck "Subdomena jest już skonfigurowana ($domain)" + okdlg "Subdomena już ustawiona" \ + "Wykryto poprzednio skonfigurowaną subdomenę:\n\n$domain\n\nStrona Nightscout powinna być widoczna z internetu." + return + fi + ns_external_port=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_PORT") whiptail --title "Ustaw subdomenę" --msgbox "Aby Nightscout był widoczny z internetu ustaw adres - subdomenę:\n\n [wybierz].ns.techdiab.pl\n\nWybrany początek subdomeny powinien:\n${uni_bullet}mieć długość od 4 do 8 znaków\n${uni_bullet}zaczynać się z małej litery,\n${uni_bullet}może składać się z małych liter, cyfr i podkreślenia _\n${uni_bullet}być unikalny, charakterystyczny i łatwa do zapamiętania" 16 75 @@ -1171,12 +1182,29 @@ uninstall_menu() { done } +get_td_domain() { + local MHOST=$(hostname) + local APIKEY=$(dotenv-tool -r get -f $ENV_FILE_ADMIN "MIKRUS_APIKEY") + curl -sd "srv=$MHOST&key=$APIKEY" https://api.mikr.us/domain | jq -r ".[].name" | grep ".ns.techdiab.pl" | head -n 1 +} + +get_domain_status() { + local domain=$(get_td_domain) + local domainLen=${#domain} + if ((domainLen > 15)); then + printf "\U1F7E2 %s" "$domain" + else + printf "\U26AA nie zarejestrowano" + fi +} + main_menu() { while :; do local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG") local quickStatus=$(center_text "Nightscout: $(get_container_status 'ns-server')" 55) local quickVersion=$(center_text "Wersja: $ns_tag" 55) - local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n$quickVersion\n" 19 60 8 \ + local quickDomain=$(center_text "Domena: $(get_domain_status 'ns-server')" 55) + local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n$quickVersion\n$quickDomain\n" 19 60 8 \ "1)" "Status kontenerów i logi" \ "2)" "Pokaż port i API SECRET" \ "3)" "Aktualizuj system" \ diff --git a/package.json b/package.json index f9a42f0..1d1ebb5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@dlvoy/ns-installer-mikrus", - "version": "1.5.5", + "version": "1.5.6", "description": "Nightscout installer for mikr.us VPS", "main": "index.js", "scripts": { diff --git a/src/lib.sh b/src/lib.sh index 874912c..4d79e98 100644 --- a/src/lib.sh +++ b/src/lib.sh @@ -18,8 +18,8 @@ MONGO_DB_DIR=/srv/nightscout/data/mongodb TOOL_FILE=/srv/nightscout/tools/nightscout-tool TOOL_LINK=/usr/bin/nightscout-tool UPDATES_DIR=/srv/nightscout/updates -SCRIPT_VERSION="1.5.5" #auto-update -SCRIPT_BUILD_TIME="2023.09.14" #auto-update +SCRIPT_VERSION="1.5.6" #auto-update +SCRIPT_BUILD_TIME="2023.09.15" #auto-update #======================================= # SETUP @@ -864,6 +864,17 @@ domain_setup_manual() { } domain_setup() { + + local domain=$(get_td_domain) + local domainLen=${#domain} + if ((domainLen > 15)); then + + msgcheck "Subdomena jest już skonfigurowana ($domain)" + okdlg "Subdomena już ustawiona" \ + "Wykryto poprzednio skonfigurowaną subdomenę:\n\n$domain\n\nStrona Nightscout powinna być widoczna z internetu." + return + fi + ns_external_port=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_PORT") whiptail --title "Ustaw subdomenę" --msgbox "Aby Nightscout był widoczny z internetu ustaw adres - subdomenę:\n\n [wybierz].ns.techdiab.pl\n\nWybrany początek subdomeny powinien:\n${uni_bullet}mieć długość od 4 do 8 znaków\n${uni_bullet}zaczynać się z małej litery,\n${uni_bullet}może składać się z małych liter, cyfr i podkreślenia _\n${uni_bullet}być unikalny, charakterystyczny i łatwa do zapamiętania" 16 75 @@ -1155,12 +1166,29 @@ uninstall_menu() { done } +get_td_domain() { + local MHOST=$(hostname) + local APIKEY=$(dotenv-tool -r get -f $ENV_FILE_ADMIN "MIKRUS_APIKEY") + curl -sd "srv=$MHOST&key=$APIKEY" https://api.mikr.us/domain | jq -r ".[].name" | grep ".ns.techdiab.pl" | head -n 1 +} + +get_domain_status() { + local domain=$(get_td_domain) + local domainLen=${#domain} + if ((domainLen > 15)); then + printf "\U1F7E2 %s" "$domain" + else + printf "\U26AA nie zarejestrowano" + fi +} + main_menu() { while :; do local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG") local quickStatus=$(center_text "Nightscout: $(get_container_status 'ns-server')" 55) local quickVersion=$(center_text "Wersja: $ns_tag" 55) - local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n$quickVersion\n" 19 60 8 \ + local quickDomain=$(center_text "Domena: $(get_domain_status 'ns-server')" 55) + local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n$quickVersion\n$quickDomain\n" 19 60 8 \ "1)" "Status kontenerów i logi" \ "2)" "Pokaż port i API SECRET" \ "3)" "Aktualizuj system" \ diff --git a/src/setup.sh b/src/setup.sh index 8aa7c71..03fd0ea 100755 --- a/src/setup.sh +++ b/src/setup.sh @@ -1,6 +1,6 @@ #!/bin/bash -### version: 1.5.5 +### version: 1.5.6 # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # Nightscout Mikr.us setup script # diff --git a/templates/nightscout.env b/templates/nightscout.env index 6322b7f..3eae4b4 100644 --- a/templates/nightscout.env +++ b/templates/nightscout.env @@ -38,9 +38,9 @@ PUMP_RETRO_FIELDS=battery reservoir clock status # Konfguracja dla Dexcom Share ######################################## -BRIDGE_USER_NAME="" # MIĘDZY CUDZYSŁOWAMI WPISZ NAZWĘ UŻYTKOWNIKA DEXCOM JEŚLI KORZYSTASZ BEZPOŚREDNIO Z ODCZYTÓW DEXCOM SHARE -BRIDGE_PASSWORD="" # MIĘDZY CUDZYSŁOWAMI WPISZ HASŁO UŻYTKOWNIKA DEXCOM JEŚLI KORZYSTASZ BEZPOŚREDNIO Z ODCZYTÓW DEXCOM SHARE -BRIDGE_SERVER="EU" # ZMIEŃ WPIS NA "US" JEŚLI KORZYSTASZ BEZPOŚREDNIO Z ODCZYTÓW DEXCOM SHARE Z SERWERA AMERYKAŃSKIEGO +# BRIDGE_USER_NAME="" # MIĘDZY CUDZYSŁOWAMI WPISZ NAZWĘ UŻYTKOWNIKA DEXCOM JEŚLI KORZYSTASZ BEZPOŚREDNIO Z ODCZYTÓW DEXCOM SHARE +# BRIDGE_PASSWORD="" # MIĘDZY CUDZYSŁOWAMI WPISZ HASŁO UŻYTKOWNIKA DEXCOM JEŚLI KORZYSTASZ BEZPOŚREDNIO Z ODCZYTÓW DEXCOM SHARE +# BRIDGE_SERVER="EU" # ZMIEŃ WPIS NA "US" JEŚLI KORZYSTASZ BEZPOŚREDNIO Z ODCZYTÓW DEXCOM SHARE Z SERWERA AMERYKAŃSKIEGO ######################################## # Ustawienia alarmów diff --git a/updated b/updated index 5014892..9214d7a 100644 --- a/updated +++ b/updated @@ -1 +1 @@ -2023-09-14T13:42:32.445Z \ No newline at end of file +2023-09-15T06:57:33.498Z \ No newline at end of file