From 0722881485f1e35bfdd818547de9e8b4ddd46c2e Mon Sep 17 00:00:00 2001 From: starbirdtech383 Date: Mon, 5 Feb 2024 10:45:33 +0530 Subject: [PATCH] message formatting and some minor refactoring --- docker-compose/aio/install.sh | 24 ++++-------------------- docker-compose/aio/pre-req-check.sh | 12 ++++++------ docker-compose/aio/prepare_env.sh | 23 +++++++++++++---------- docker-compose/aio/sbin/install_vars.sh | 6 +++--- docker-compose/aio/sbin/util.sh | 2 +- 5 files changed, 27 insertions(+), 40 deletions(-) diff --git a/docker-compose/aio/install.sh b/docker-compose/aio/install.sh index eb62002352..0e2019984d 100755 --- a/docker-compose/aio/install.sh +++ b/docker-compose/aio/install.sh @@ -11,34 +11,18 @@ # c. docker repo accessiblity quay.io/minio/minio:RELEASE.2023-12-09T18-17-51Z, redis:latest, postgres:14.7, nocodb/nocodb:latest, nginx # d. licence check (tbd) - -## utility functions -asksure() { -echo -n "Are you sure (Y/N)? " -while read -r -n 1 -s answer; do - if [[ $answer = [YyNn] ]]; then - [[ $answer = [Yy] ]] && retval=0 - [[ $answer = [Nn] ]] && retval=1 - break - fi -done - -echo # just a final linefeed, optics... - -return $retval -} - # -- main line code starts here SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) - +## utility functions +source ${SCRIPT_DIR}/sbin/util.sh ${SCRIPT_DIR}/pre-req-check.sh PRE_REQ_SUCCESS=$? if [[ ${PRE_REQ_SUCCESS} != 0 ]] then - echo "Few pre-requisites are failing.\n Recommend to resolve and proceed.\n However you could still proceed to install" >&2 + echo "** Few pre-requisites are failing. Recommend to resolve and proceed. However you could still proceed to install **" >&2 else - echo "All pre-requistites are taken care of. Proceed to install.." + echo "** All pre-requistites are taken care of. Proceed to install.. **" fi if asksure; then diff --git a/docker-compose/aio/pre-req-check.sh b/docker-compose/aio/pre-req-check.sh index ba2cd45d98..529298dbe1 100755 --- a/docker-compose/aio/pre-req-check.sh +++ b/docker-compose/aio/pre-req-check.sh @@ -17,14 +17,14 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) source ${SCRIPT_DIR}/sbin/util.sh source ${SCRIPT_DIR}/sbin/install_vars.sh echo "Performing nocodb system check and setup. This step may require sudo permissions to" -echo "Check if ports are accessible" +echo " | Check if ports are accessible" PRE_REQ=0 # d. Check if required tools are installed echo "Checking if required tools (docker, docker-compose, jq, lsof) are installed..." for tool in docker docker-compose lsof; do if ! command -v "$tool" &> /dev/null; then - echo "Error: $tool is not installed. Please install it before proceeding." + echo " | Error: $tool is not installed. Please install it before proceeding." exit 1 fi done @@ -36,13 +36,13 @@ done # echo "NocoDB version: $nocodb_install_version" # f. Port mapping check -echo "Checking port accessibility..." +echo " | Checking port accessibility..." for port in "${REQUIRED_PORTS[@]}"; do if lsof -Pi :$port -sTCP:LISTEN -t >/dev/null; then - echo "Port $port is in use. Please make sure it is free." >&2 + echo " | Port $port is in use. Please make sure it is free." >&2 PRE_REQ=1 else - echo "Port $port is free." + echo " | Port $port is free." fi done @@ -57,5 +57,5 @@ done # fi # done -echo "System check completed successfully." +echo "** System check completed successfully. **" exit $PRE_REQ \ No newline at end of file diff --git a/docker-compose/aio/prepare_env.sh b/docker-compose/aio/prepare_env.sh index d574267298..ffb8cc4a86 100755 --- a/docker-compose/aio/prepare_env.sh +++ b/docker-compose/aio/prepare_env.sh @@ -18,18 +18,21 @@ fi function acceptProperty(){ local varDetail="$1" + local promptUser="${2:-true}" prompt=$(echo "$varDetail" | cut -d '|' -f1) prop=$(echo "$varDetail" | cut -d '|' -f2) key=$(echo "$prop" | cut -d'=' -f1) default_value="${prop#*=}" prev_value_or_default=${!key:-${default_value}} - + # echo prompt: ${prompt} # echo prop: ${prop} # echo key: ${key} # echo default_value: ${default_value} - - read -p "Enter value for $key (default: ${prev_value_or_default}): " user_input + + if(${promptUser} == "true"); then + read -p " || Enter value for $key (default: ${prev_value_or_default}): " user_input + fi # Use user input or default value if empty value=${user_input:-$prev_value_or_default} @@ -38,26 +41,26 @@ function acceptProperty(){ userValues="${userValues}${key}=${value}\n" } # Iterate over the properties array and prompt user for input -echo basic_properties : "${basic_properties[@]}" for multi_property_array in basic_properties invite_only_signup_priorities google_login_properties email_properties s3_attachment_properties ; do array_name="$multi_property_array[@]" # Name of the array to process array=("${!array_name}") - # array=("${!multi_property_array}") - echo array : "${array[@]}" for varDetail in "${array[@]}"; do - echo varDetail : ${varDetail} - prompt=$(echo "$varDetail" | cut -d '|' -f1) + promptUser=true + promptMsg=$(echo "$varDetail" | cut -d '|' -f1) prop=$(echo "$varDetail" | cut -d '|' -f2) - if [[ ${prompt} == "main" ]] + if [[ ${promptMsg} == "main" ]] then echo $prop if asksure; then continue else + # set all defaults here + promptUser=false + # acceptProperty "${varDetail}" "${promptUser}" break fi fi - acceptProperty "${varDetail}" + acceptProperty "${varDetail}" "${promptUser}" done done diff --git a/docker-compose/aio/sbin/install_vars.sh b/docker-compose/aio/sbin/install_vars.sh index dc5aac5a0b..609722c3ed 100644 --- a/docker-compose/aio/sbin/install_vars.sh +++ b/docker-compose/aio/sbin/install_vars.sh @@ -3,9 +3,9 @@ REQUIRED_PORTS=(80 443) DOCKER_IMAGES=("redis:latest" "postgres:14.7" "nocodb/nocodb:latest" "nginx" "certbot/certbot:latest" ) # Array of properties with default values -basic_properties=("main|basic configurations, customise ?" "Username for postgres database|POSTGRES_USER=postgres" "|POSTGRES_PASSWORD=test123" "|POSTGRES_DB=nocodb" "|NC_REDIS_URL=redis://redis:6379/4" '|NC_DB=pg://postgres:5432?u=postgres&password=${POSTGRES_PASSWORD:-nocodb}&d=postgres' "Are you using custom DNS, configure NC_PUBLIC_URL to reflect in the invite emails?|NC_PUBLIC_URL=$(hostname)" "Disable connecting to external db?|NC_CONNECT_TO_EXTERNAL_DB_DISABLED=false") -invite_only_signup_priorities=("main|Allow invite only sign-up" "invite only signup?|NC_INVITE_ONLY_SIGNUP=false" "|NC_ADMIN_EMAIL=false" "|NC_ADMIN_PASSWORD=false") -google_login_properties=("main|Configure google login" "Enter Client ID|NC_GOOGLE_CLIENT_ID=" "Enter Client ID|NC_GOOGLE_CLIENT_SECRET=") +basic_properties=("main|Basic Configurations" "Username for postgres database|POSTGRES_USER=postgres" "|POSTGRES_PASSWORD=test123" "|POSTGRES_DB=nocodb" "|NC_REDIS_URL=redis://redis:6379/4" '|NC_DB=pg://postgres:5432?u=postgres&password=${POSTGRES_PASSWORD:-nocodb}&d=postgres' "Are you using custom DNS, configure NC_PUBLIC_URL to reflect in the invite emails?|NC_PUBLIC_URL=$(hostname)" "Disable connecting to external db?|NC_CONNECT_TO_EXTERNAL_DB_DISABLED=false") +invite_only_signup_priorities=("main|Allow invite only sign-up" "invite only signup?|NC_INVITE_ONLY_SIGNUP=false" "|NC_ADMIN_EMAIL=admin@nocodb.com" "|NC_ADMIN_PASSWORD=nocodb123") +google_login_properties=("main|Configure Google Login" "Enter Client ID|NC_GOOGLE_CLIENT_ID=" "Enter Client ID|NC_GOOGLE_CLIENT_SECRET=") email_properties=("main|Configure smtp properties" "|NC_SMTP_FROM=" "|NC_SMTP_HOST=" "|NC_SMTP_PORT=" "|NC_SMTP_USERNAME=" "|NC_SMTP_PASSWORD=" "|NC_SMTP_SECURE=" "|NC_SMTP_IGNORE_TLS=" ) s3_attachment_properties=("main|Do you want to configure s3 for attachements?" "|NC_S3_BUCKET_NAME=nocodb-attachements" "|NC_S3_REGION=" "|NC_S3_ACCESS_KEY=" "|NC_S3_ACCESS_SECRET=" ) diff --git a/docker-compose/aio/sbin/util.sh b/docker-compose/aio/sbin/util.sh index 566817f1f7..c192043b2a 100644 --- a/docker-compose/aio/sbin/util.sh +++ b/docker-compose/aio/sbin/util.sh @@ -4,7 +4,7 @@ # asksure() { -echo -n "Are you sure (Y/N)? " +echo -n " | Press Y to continue or N to skip to next step (Y/N)? " while read -r -n 1 -s answer; do if [[ $answer = [YyNn] ]]; then [[ $answer = [Yy] ]] && retval=0