From 736cde16c643e74e6fb6ab512052bcd1c09605a5 Mon Sep 17 00:00:00 2001 From: lou Date: Tue, 15 Oct 2024 17:35:59 -0400 Subject: [PATCH] wait for port to be avaliable, add nc dependancy to setup process --- manage | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/manage b/manage index 5acb7c2..53d9270 100755 --- a/manage +++ b/manage @@ -1,5 +1,9 @@ #!/bin/bash +if [ -f .env ]; then + export "$(grep -v '^#' .env | xargs)" +fi + PORT=3000 SETUP_FILE=".setup_complete" COLOR_RESET="\033[0m" @@ -9,6 +13,10 @@ COLOR_YELLOW="\033[1;33m" COLOR_BLUE="\033[1;34m" COLOR_CYAN="\033[1;36m" +check_db() { + nc -z "$DB_HOST" "$DB_PORT" +} + function install_tools() { if ! command -v node &> /dev/null; then echo -e "${COLOR_RED}NodeJS is not installed. Installing now...${COLOR_RESET}" @@ -25,6 +33,18 @@ function install_tools() { echo -e "${COLOR_GREEN}NodeJS is installed. Version: $(node -v)${COLOR_RESET}" fi + if ! command -h nc &> /dev/null; then + echo -e "${COLOR_RED}Netcat is not installed. Installing now...${COLOR_RESET}" + echo -e "${COLOR_YELLOW}You may need to enter your sudo password.${COLOR_RESET}" + echo + sudo apt-get install netcat-traditional + echo + echo -e "${COLOR_GREEN}Netcat installed successfully.${COLOR_RESET}" + echo + else + echo -e "${COLOR_GREEN}Netcat is installed. Version: $(nc -h | grep -oP '\[v[0-9.]+\-[0-9]+\]' | tr -d '[]')${COLOR_RESET}" + fi + if ! command -v npm &> /dev/null; then echo -e "${COLOR_RED}NPM is not installed. Installing now...${COLOR_RESET}" echo -e "${COLOR_YELLOW}You may need to enter your sudo password.${COLOR_RESET}" @@ -177,6 +197,13 @@ function restart_server() { echo -e "${COLOR_BLUE}Starting database...${COLOR_RESET}" echo "This may require your sudo password" sudo docker compose up -d + + echo "Waiting for the db at $DB_HOST:$DB_PORT to be available..." + while ! check_db; do + sleep 2 + echo "Still waiting for the database..." + done + echo -e "${COLOR_GREEN}Done.${COLOR_RESET}" fi @@ -214,6 +241,13 @@ function start_server() { echo -e "${COLOR_BLUE}Starting database...${COLOR_RESET}" echo "This may require your sudo password" sudo docker compose up -d + + echo "Waiting for the db at $DB_HOST:$DB_PORT to be available..." + while ! check_db; do + sleep 2 + echo "Still waiting for the database..." + done + echo -e "${COLOR_GREEN}Done.${COLOR_RESET}" fi