diff --git a/install.sh b/install.sh index 830d36b..c9995a3 100644 --- a/install.sh +++ b/install.sh @@ -7,6 +7,7 @@ REQUIRED_NODE_VERSION=18.0.0 LOGTO=/dev/null +ENV_FILE_ADMIN=/srv/nightscout/config/admin.env #======================================= # SETUP @@ -128,11 +129,11 @@ ohai() { } msgok() { - printf "$emoji_ok $1!\n" + printf "$emoji_ok $1\n" } msgcheck() { - printf "$emoji_check $1!\n" + printf "$emoji_check $1\n" } warn() { @@ -194,7 +195,7 @@ test_node() { add_if_not_ok() { RESULT=$? if [ $RESULT -eq 0 ]; then - msgcheck "$1 installed!" + msgcheck "$1 installed" else packages+=("$2") fi @@ -203,7 +204,7 @@ add_if_not_ok() { add_if_not_ok_cmd() { RESULT=$? if [ $RESULT -eq 0 ]; then - msgcheck "$1 installed!" + msgcheck "$1 installed" else ohai "Installing $1..." eval $2 >/dev/null 2>&1 && msgcheck "Installing $1 successfull" @@ -248,7 +249,7 @@ setup_node() { test_node RESULT=$? if [ $RESULT -eq 0 ]; then - msgcheck "Node installed in correct version!" + msgcheck "Node installed in correct version" else ohai "Preparing Node.js setup" curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - >/dev/null 2>&1 @@ -278,12 +279,25 @@ setup_dir_structure() { ohai "Configuring folder structure" mkdir -p /srv/nightscout/data/mongodb mkdir -p /srv/nightscout/config + mkdir -p /srv/nightscout/config/templates chown -R mongodb:root /srv/nightscout/data/mongodb } MIKRUS_APIKEY='' MIKRUS_HOST='' +source_admin() { + if [[ -f $ENV_FILE_ADMIN ]]; then + source $ENV_FILE_ADMIN + msgok "Imported admin config" + fi +} + +prompt_welcome() { + whiptail --title "Witamy" --yesno "Ten skrypt zainstaluje Nightscout na bieżącym serwerze mikr.us\n\nJeśli na tym serwerze istnieje już instalacja Nightscout - ten skrypt spróbuje ją przekonfigurować" --yes-button "$uni_start" --no-button "$uni_exit" 12 70 + exit_on_no_cancel +} + prompt_mikrus_host() { if ! [[ "$MIKRUS_HOST" =~ [a-z][0-9]{3} ]]; then MIKRUS_HOST=`hostname` @@ -302,6 +316,9 @@ prompt_mikrus_host() { fi fi done + + ohai "Updating admin config (host)" + dotenv-tool -pmr -i $ENV_FILE_ADMIN -- "MIKRUS_HOST=$MIKRUS_HOST" fi } @@ -328,6 +345,9 @@ prompt_mikrus_apikey() { exit_on_no_cancel fi done + + ohai "Updating admin config (api key)" + dotenv-tool -pmr -i $ENV_FILE_ADMIN -- "MIKRUS_APIKEY=$MIKRUS_APIKEY" fi } @@ -337,7 +357,6 @@ prompt_mikrus_apikey() { # MAIN SCRIPT #======================================= - setup_update_repo check_git check_docker @@ -349,9 +368,9 @@ setup_node setup_users setup_dir_structure -whiptail --title "Witamy" --yesno "Ten skrypt zainstaluje Nightscout na bieżącym serwerze mikr.us\n\nJeśli na tym serwerze istnieje już instalacja Nightscout - ten skrypt spróbuje ją przekonfigurować" --yes-button "$uni_start" --no-button "$uni_exit" 12 70 -exit_on_no_cancel +source_admin +prompt_welcome prompt_mikrus_host prompt_mikrus_apikey diff --git a/src/lib.sh b/src/lib.sh index 8c073e5..f31e636 100644 --- a/src/lib.sh +++ b/src/lib.sh @@ -4,6 +4,7 @@ REQUIRED_NODE_VERSION=18.0.0 LOGTO=/dev/null +ENV_FILE_ADMIN=/srv/nightscout/config/admin.env #======================================= # SETUP @@ -125,11 +126,11 @@ ohai() { } msgok() { - printf "$emoji_ok $1!\n" + printf "$emoji_ok $1\n" } msgcheck() { - printf "$emoji_check $1!\n" + printf "$emoji_check $1\n" } warn() { @@ -191,7 +192,7 @@ test_node() { add_if_not_ok() { RESULT=$? if [ $RESULT -eq 0 ]; then - msgcheck "$1 installed!" + msgcheck "$1 installed" else packages+=("$2") fi @@ -200,7 +201,7 @@ add_if_not_ok() { add_if_not_ok_cmd() { RESULT=$? if [ $RESULT -eq 0 ]; then - msgcheck "$1 installed!" + msgcheck "$1 installed" else ohai "Installing $1..." eval $2 >/dev/null 2>&1 && msgcheck "Installing $1 successfull" @@ -245,7 +246,7 @@ setup_node() { test_node RESULT=$? if [ $RESULT -eq 0 ]; then - msgcheck "Node installed in correct version!" + msgcheck "Node installed in correct version" else ohai "Preparing Node.js setup" curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - >/dev/null 2>&1 @@ -275,12 +276,25 @@ setup_dir_structure() { ohai "Configuring folder structure" mkdir -p /srv/nightscout/data/mongodb mkdir -p /srv/nightscout/config + mkdir -p /srv/nightscout/config/templates chown -R mongodb:root /srv/nightscout/data/mongodb } MIKRUS_APIKEY='' MIKRUS_HOST='' +source_admin() { + if [[ -f $ENV_FILE_ADMIN ]]; then + source $ENV_FILE_ADMIN + msgok "Imported admin config" + fi +} + +prompt_welcome() { + whiptail --title "Witamy" --yesno "Ten skrypt zainstaluje Nightscout na bieżącym serwerze mikr.us\n\nJeśli na tym serwerze istnieje już instalacja Nightscout - ten skrypt spróbuje ją przekonfigurować" --yes-button "$uni_start" --no-button "$uni_exit" 12 70 + exit_on_no_cancel +} + prompt_mikrus_host() { if ! [[ "$MIKRUS_HOST" =~ [a-z][0-9]{3} ]]; then MIKRUS_HOST=`hostname` @@ -299,6 +313,9 @@ prompt_mikrus_host() { fi fi done + + ohai "Updating admin config (host)" + dotenv-tool -pmr -i $ENV_FILE_ADMIN -- "MIKRUS_HOST=$MIKRUS_HOST" fi } @@ -325,6 +342,9 @@ prompt_mikrus_apikey() { exit_on_no_cancel fi done + + ohai "Updating admin config (api key)" + dotenv-tool -pmr -i $ENV_FILE_ADMIN -- "MIKRUS_APIKEY=$MIKRUS_APIKEY" fi } diff --git a/src/setup.sh b/src/setup.sh index 03fd74f..777d2b5 100755 --- a/src/setup.sh +++ b/src/setup.sh @@ -12,7 +12,6 @@ if [[ ! -d "$DIR" ]]; then DIR="$PWD"; fi # MAIN SCRIPT #======================================= - setup_update_repo check_git check_docker @@ -24,9 +23,9 @@ setup_node setup_users setup_dir_structure -whiptail --title "Witamy" --yesno "Ten skrypt zainstaluje Nightscout na bieżącym serwerze mikr.us\n\nJeśli na tym serwerze istnieje już instalacja Nightscout - ten skrypt spróbuje ją przekonfigurować" --yes-button "$uni_start" --no-button "$uni_exit" 12 70 -exit_on_no_cancel +source_admin +prompt_welcome prompt_mikrus_host prompt_mikrus_apikey