From f780a8a8260d86fedb000d7664b1bc89dab95184 Mon Sep 17 00:00:00 2001 From: Semen Bezrukov Date: Tue, 22 Oct 2019 11:53:02 +0300 Subject: [PATCH] Refactor code --- run-document-server.sh | 68 ++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/run-document-server.sh b/run-document-server.sh index f31572c..1016740 100755 --- a/run-document-server.sh +++ b/run-document-server.sh @@ -57,9 +57,8 @@ PGDATA=${PG_ROOT}/${PG_VERSION}/${PG_NAME} PG_NEW_CLUSTER=false read_setting(){ - DB_SERVER_TYPE=${DB_SERVER_TYPE:-postgres} + DB_SERVER_TYPE=${DB_SERVER_TYPE:-$(${JSON} services.CoAuthoring.sql.type)} POSTGRESQL_SERVER_HOST=${POSTGRESQL_SERVER_HOST:-$(${JSON} services.CoAuthoring.sql.dbHost)} - POSTGRESQL_SERVER_PORT=${POSTGRESQL_SERVER_PORT:-$(${JSON} services.CoAuthoring.sql.dbPort)} POSTGRESQL_SERVER_DB_NAME=${POSTGRESQL_SERVER_DB_NAME:-$(${JSON} services.CoAuthoring.sql.dbName)} POSTGRESQL_SERVER_USER=${POSTGRESQL_SERVER_USER:-$(${JSON} services.CoAuthoring.sql.dbUser)} POSTGRESQL_SERVER_PASS=${POSTGRESQL_SERVER_PASS:-$(${JSON} services.CoAuthoring.sql.dbPass)} @@ -233,49 +232,48 @@ create_postgresql_cluster(){ pg_createcluster ${PG_VERSION} ${PG_NAME} } -create_db(){ +create_postgresql_db(){ + sudo -u postgres psql -c "CREATE DATABASE onlyoffice;" + sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';" + sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;" +} + +create_db_tbl() { case $DB_SERVER_TYPE in "postgres") - sudo -u postgres psql -c "CREATE DATABASE onlyoffice;" - sudo -u postgres psql -c "CREATE USER onlyoffice WITH password 'onlyoffice';" - sudo -u postgres psql -c "GRANT ALL privileges ON DATABASE onlyoffice TO onlyoffice;" + create_postgresql_tbl ;; "mariadb"|"mysql") - sudo mysql -e "CREATE DATABASE IF NOT EXISTS onlyoffice DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;" - sudo mysql -e "CREATE USER 'onlyoffice'@'localhost' IDENTIFIED BY 'onlyoffice';" - sudo mysql -e "GRANT ALL PRIVILEGES ON \`onlyoffice\`.* TO 'onlyoffice'@'localhost';" + create_mysql_tbl ;; esac } -create_db_tbl(){ - case $DB_SERVER_TYPE in - "postgres") - CONNECTION_PARAMS="-h$DB_SERVER_HOST -p$DB_SERVER_PORT -U$DB_SERVER_USER -w" - if [ -n "$DB_SERVER_PASS" ]; then - export PGPASSWORD=$DB_SERVER_PASS - fi +create_postgresql_tbl() { + CONNECTION_PARAMS="-h$DB_SERVER_HOST -p${$DB_SERVER_PORT:="5432"} -U$DB_SERVER_USER -w" + if [ -n "$DB_SERVER_PASS" ]; then + export PGPASSWORD=$DB_SERVER_PASS + fi - PSQL="psql -q $CONNECTION_PARAMS" - CREATEDB="createdb $CONNECTION_PARAMS" + PSQL="psql -q $CONNECTION_PARAMS" + CREATEDB="createdb $CONNECTION_PARAMS" - # Create db on remote server - if $PSQL -lt | cut -d\| -f 1 | grep -qw | grep 0; then - $CREATEDB $DB_SERVER_NAME - fi + # Create db on remote server + if $PSQL -lt | cut -d\| -f 1 | grep -qw | grep 0; then + $CREATEDB $DB_SERVER_NAME + fi - $PSQL -d "$DB_SERVER_NAME" -f "$APP_DIR/server/schema/postgresql/createdb.sql" - ;; - "mariadb"|"mysql") - CONNECTION_PARAMS="-h$DB_SERVER_HOST -P${DB_SERVER_PORT:="3306"} -u$DB_SERVER_USER -p$DB_SERVER_PASS -w" - MYSQL="mysql -q $CONNECTION_PARAMS" + $PSQL -d "$DB_SERVER_NAME" -f "$APP_DIR/server/schema/postgresql/createdb.sql" +} - # Create db on remote server - $MYSQL -e "CREATE DATABASE IF NOT EXISTS $DB_SERVER_NAME DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;" >/dev/null 2>&1 +create_mysql_tbl() { + CONNECTION_PARAMS="-h$DB_SERVER_HOST -P${DB_SERVER_PORT:="3306"} -u$DB_SERVER_USER -p$DB_SERVER_PASS -w" + MYSQL="mysql -q $CONNECTION_PARAMS" - $MYSQL $DB_SERVER_NAME < "$APP_DIR/server/schema/mysql/createdb.sql" >/dev/null 2>&1 - ;; - esac + # Create db on remote server + $MYSQL -e "CREATE DATABASE IF NOT EXISTS $DB_SERVER_NAME DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;" >/dev/null 2>&1 + + $MYSQL $DB_SERVER_NAME < "$APP_DIR/server/schema/mysql/createdb.sql" >/dev/null 2>&1 } update_nginx_settings(){ @@ -373,7 +371,7 @@ if [ ${ONLYOFFICE_DATA_CONTAINER_HOST} = "localhost" ]; then update_db_settings waiting_for_db create_db_tbl - elif [ $DB_SERVER_TYPE == "postgres" ]; then + else # change rights for postgres directory chown -R postgres:postgres ${PG_ROOT} chmod -R 700 ${PG_ROOT} @@ -414,8 +412,8 @@ for i in ${LOCAL_SERVICES[@]}; do done if [ ${PG_NEW_CLUSTER} = "true" ]; then - create_db - create_db_tbl + create_postgresql_db + create_postgresql_tbl fi if [ ${ONLYOFFICE_DATA_CONTAINER} != "true" ]; then