From 6cb6eeb8a3de277f212d85773eabb8cdbca11ba8 Mon Sep 17 00:00:00 2001 From: margarida Date: Mon, 23 Nov 2020 18:51:17 +0000 Subject: [PATCH] [TOOLS][DOCKER] Change dialog method to command substitution and redirection and add way of finding git's root --- bin/configure | 227 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 159 insertions(+), 68 deletions(-) diff --git a/bin/configure b/bin/configure index 8f378c883e..23a12a7db8 100755 --- a/bin/configure +++ b/bin/configure @@ -16,38 +16,59 @@ check_input(){ fi } -DIALOG=${DIALOG=dialog} -tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$ -trap "rm -f $tempfile" 0 1 2 5 15 -$DIALOG --title "Configure" \ - --inputbox "Domain root:" 12 51 2> $tempfile +exec 3>&1 +domain_root=$(dialog \ + --title "Configure" \ + --ok-label "Ok" \ + --clear \ + --cancel-label "Exit" \ + --inputbox "Domain root:" 12 51 \ + 2>&1 1>&3) check_retval $? -domain_root=`cat $tempfile` +exec 3>&- check_input $domain_root -$DIALOG --title "Configure" \ - --inputbox "Subdomain (can be empty):" 12 51 2> $tempfile +exec 3>&1 +sub_domain=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Subdomain (can be empty):" 12 51 \ + 2>&1 1>&3) check_retval $? -sub_domain=`cat $tempfile` +exec 3>&- - -$DIALOG --title "Configure" --clear \ - --menu "Use certificate signed by Let's Encrypt?" 12 51 2 \ - "Y" "" \ - "n" "" 2> $tempfile +exec 3>&1 +signed=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --menu "Use certificate signed by Let's Encrypt?" 12 51 2 \ + "Y" "" \ + "n" "" \ + 2>&1 1>&3) check_retval $? -signed=`cat $tempfile` +exec 3>&- [ "${signed}" = "${signed#[Yy]}" ] signed=$? + if [ $signed -ne 0 ]; then - $DIALOG --title "Configure" \ - --inputbox "Email:" 12 51 2> $tempfile + exec 3>&1 + email=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Email:" 12 51 \ + 2>&1 1>&3) check_retval $? - email=`cat $tempfile` + exec 3>&- check_input $email fi @@ -58,7 +79,8 @@ else domain="${sub_domain}.${domain_root}" fi -mkdir -p ./docker/bootstrap +root="$(git rev-parse --show-toplevel)" +mkdir -p root/docker/bootstrap cat > ./docker/bootstrap/bootstrap.env < $tempfile +exec 3>&1 +dbms=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --menu "Select DBMS:" 12 51 2 \ + "postgres" "" \ + "mariadb" "" \ + 2>&1 1>&3) check_retval $? -dbms=`cat $tempfile` +exec 3>&- -$DIALOG --title "Configure" --clear \ - --inputbox "Social database name:" 12 51 2> $tempfile +exec 3>&1 +db=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Social database name:" 12 51 \ + 2>&1 1>&3) check_retval $? -db=`cat $tempfile` +exec 3>&- if [ "${dbms}" = 'mariadb' ] then - $DIALOG --title "Configure" --clear \ - --inputbox "Database user:" 12 51 2> $tempfile + exec 3>&1 + user=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Database user:" 12 51 \ + 2>&1 1>&3) check_retval $? - user=`cat $tempfile` + exec 3>&- check_input $user fi -$DIALOG --title "Configure" --clear \ - --inputbox "Database password:" 12 51 2> $tempfile + +exec 3>&1 +password=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Database password:" 12 51 \ + 2>&1 1>&3) check_retval $? -password=`cat $tempfile` +exec 3>&- check_input $password -$DIALOG --title "Configure" --clear \ - --inputbox "Sitename:" 12 51 2> $tempfile +exec 3>&1 +sitename=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Sitename:" 12 51 \ + 2>&1 1>&3) check_retval $? -sitename=`cat $tempfile` +exec 3>&- check_input $sitename -$DIALOG --title "Configure" --clear \ - --inputbox "Admin nickname:" 12 51 2> $tempfile +exec 3>&1 +admin_nick=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Admin nickname:" 12 51 \ + 2>&1 1>&3) check_retval $? -admin_nick=`cat $tempfile` +exec 3>&- check_input $admin_nick -$DIALOG --title "Configure" --clear \ - --inputbox "Admin password:" 12 51 2> $tempfile +exec 3>&1 +admin_password=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Admin password:" 12 51 \ + 2>&1 1>&3) check_retval $? -admin_password=`cat $tempfile` +exec 3>&- check_input $admin_password -$DIALOG --clear --title "Configure" \ - --menu "Site profile:" 12 51 4 \ - "public" "" \ - "private" "" \ - "community" "" \ - "single_user" "" 2> $tempfile +exec 3>&1 +profile=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --menu "Site profile:" 12 51 4 \ + "public" "" \ + "private" "" \ + "community" "" \ + "single_user" "" \ + 2>&1 1>&3) check_retval $? -profile=`cat $tempfile` +exec 3>&- -$DIALOG --title "Configure" --clear \ - --inputbox "Mailer dsn:" 12 51 2> $tempfile +exec 3>&1 +mailer_dsn=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "Mailer dsn:" 12 51 \ + 2>&1 1>&3) check_retval $? -mailer_dsn=`cat $tempfile` +exec 3>&- check_input $mailer_dsn -mkdir -p ./docker/db +mkdir -p root/docker/db if [ "${dbms}" = 'mariadb' ]; then - $DIALOG --title "Configure" --clear \ - --inputbox "DB root password" 12 51 2> $tempfile - check_retval $? - db_root_password=`cat $tempfile` - check_input $db_root_password - cat > ./docker/db/db.env <&1 + db_root_password=$(dialog \ + --title "Configure" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --inputbox "DB root password" 12 51 \ + 2>&1 1>&3) + check_retval $? + exec 3>&- + check_input $db_root_password + + cat > ./docker/db/db.env <> .env.local -mkdir -p ./docker/social +mkdir -p root/docker/social cat > ./docker/social/social.env < docker-compose.yaml -$DIALOG --title "Services" --clear \ - --checklist "Services to include in docker-compose:" 12 44 6 \ - 1 "nginx" on \ - 2 "certbot" on \ - 3 "php" on \ - 4 "db" on \ - 5 "redis" on 2> $tempfile +exec 3>&1 +choice=$(dialog \ + --title "Services" \ + --clear \ + --ok-label "Ok" \ + --cancel-label "Exit" \ + --checklist "Services to include in docker-compose:" 12 44 6 \ + 1 "nginx" on \ + 2 "certbot" on \ + 3 "php" on \ + 4 "db" on \ + 5 "redis" on \ + 2>&1 1>&3) check_retval $? -choice=`cat $tempfile` +exec 3>&- + echo "\nservices:" >> docker-compose.yaml