summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYehonal <yehonal.azeroth@gmail.com>2017-09-25 02:15:22 +0200
committerYehonal <yehonal.azeroth@gmail.com>2017-09-25 02:15:22 +0200
commitc42ec97bb09459a2bad953f5374ab8a887a0e93e (patch)
treea4ff9a83113f2153c87b37aa5573b5abdf212284
parent61df6f7d447379c7434fbe5b99e89b90ff369cd1 (diff)
Various fixes for installer script and db_assembler
-rw-r--r--bin/db_assembler/includes/functions.sh105
-rw-r--r--bin/installer/includes/os_configs/debian.sh4
-rw-r--r--bin/installer/includes/os_configs/ubuntu.sh4
-rw-r--r--conf/config.sh.dist4
4 files changed, 90 insertions, 27 deletions
diff --git a/bin/db_assembler/includes/functions.sh b/bin/db_assembler/includes/functions.sh
index da0415948a..cc917af18f 100644
--- a/bin/db_assembler/includes/functions.sh
+++ b/bin/db_assembler/includes/functions.sh
@@ -1,12 +1,47 @@
+# globals
+PROMPT_USER=""
+PROMPT_PASS=""
+
+# use in a subshell
+function dbasm_resetExitCode() {
+ exit 0
+}
+
+function dbasm_mysqlExec() {
+ confs=$1
+ command=$2
+ options=$3
+
+ eval $confs
+
+ if [[ ! -z "${PROMPT_USER// }" ]]; then
+ MYSQL_USER=$PROMPT_USER
+ MYSQL_PASS=$PROMPT_PASS
+ fi
+
+ export MYSQL_PWD=$MYSQL_PASS
+
+ retval=$("$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" $options -e "$command")
+ if [[ $? -ne 0 ]]; then
+ err=$("$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" $options -e "$command" 2>&1 )
+ if [[ "$err" == *"Access denied"* ]]; then
+ read -p "Insert mysql user:" PROMPT_USER
+ read -p "Insert mysql pass:" -s PROMPT_PASS
+ export MYSQL_PWD=$PROMPT_PASS
+
+ retval=$("$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$PROMPT_USER" $options -e "$command")
+ else
+ exit
+ fi
+ fi
+}
+
function dbasm_isNotEmpty() {
dbname=$1
conf=$2
-
- eval $confs;
- export MYSQL_PWD=$MYSQL_PASS
-
- RESULT=`"$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" --skip-column-names -e "SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '${dbname}'"`
- if (( $RESULT > 0 )); then
+
+ dbasm_mysqlExec "$conf" "SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '${dbname}'" "--skip-column-names"
+ if (( $retval > 0 )); then
true
else
false
@@ -17,11 +52,8 @@ function dbasm_dbExists() {
dbname=$1
conf=$2
- eval $confs;
- export MYSQL_PWD=$MYSQL_PASS
-
- RESULT=`"$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" --skip-column-names -e "SHOW DATABASES LIKE '${dbname}'"`
- if [ "$RESULT" == "${dbname}" ]; then
+ dbasm_mysqlExec "$conf" "SHOW DATABASES LIKE '${dbname}'" "--skip-column-names"
+ if [ "$retval" == "${dbname}" ]; then
true
else
false
@@ -38,17 +70,14 @@ function dbasm_createDB() {
name="DB_"$uc"_NAME"
dbname=${!name}
-
- eval $confs;
-
- export MYSQL_PWD=$MYSQL_PASS
+
+ eval $confs
if dbasm_dbExists $dbname "$confs"; then
echo "$dbname database exists"
else
- "$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" -e "GRANT USAGE ON * . * TO 'acore'@'${MYSQL_HOST}' IDENTIFIED BY 'acore' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;"
- "$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" -e "CREATE DATABASE \`${dbname}\`"
- "$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" -e "GRANT ALL PRIVILEGES ON \`${dbname}\` . * TO 'acore'@'${MYSQL_HOST}' WITH GRANT OPTION;"
+ echo "Creating DB ${dbname} ..."
+ dbasm_mysqlExec "$confs" "CREATE DATABASE \`${dbname}\`" ""
fi
}
@@ -183,12 +212,29 @@ function dbasm_db_backup() {
dbname=${!name}
eval $confs;
+
+ if [[ ! -z "${PROMPT_USER// }" ]]; then
+ MYSQL_USER=$PROMPT_USER
+ MYSQL_PASS=$PROMPT_PASS
+ fi
export MYSQL_PWD=$MYSQL_PASS
now=`date +%s`
- "$DB_MYSQL_DUMP_EXEC" --opt --user="$MYSQL_USER" --host="$MYSQL_HOST" "$dbname" > "${BACKUP_FOLDER}${database}_backup_${now}.sql" && echo "done"
+ "$DB_MYSQL_DUMP_EXEC" --opt --user="$MYSQL_USER" --host="$MYSQL_HOST" "$dbname" > "${BACKUP_FOLDER}${database}_backup_${now}.sql" && echo "done"
+ if [[ $? -ne 0 ]]; then
+ err=$("$DB_MYSQL_DUMP_EXEC" --opt --user="$MYSQL_USER" --host="$MYSQL_HOST" "$dbname" 2>&1 )
+ if [[ "$err" == *"Access denied"* ]]; then
+ read -p "Insert mysql user:" PROMPT_USER
+ read -p "Insert mysql pass:" PROMPT_PASS
+ export MYSQL_PWD=$PROMPT_PASS
+
+ "$DB_MYSQL_DUMP_EXEC" --opt --user="$PROMPT_USER" --host="$MYSQL_HOST" "$dbname" > "${BACKUP_FOLDER}${database}_backup_${now}.sql" && echo "done"
+ else
+ exit
+ fi
+ fi
}
function dbasm_db_import() {
@@ -213,10 +259,27 @@ function dbasm_db_import() {
echo "importing $1 - $2 ..."
eval $confs;
+
+ if [[ ! -z "${PROMPT_USER// }" ]]; then
+ MYSQL_USER=$PROMPT_USER
+ MYSQL_PASS=$PROMPT_PASS
+ fi
export MYSQL_PWD=$MYSQL_PASS
-
- "$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" "$dbname" < "${OUTPUT_FOLDER}${database}_${type}.sql"
+
+ "$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" "$dbname" < "${OUTPUT_FOLDER}${database}_${type}.sql"
+ if [[ $? -ne 0 ]]; then
+ err=$("$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" "$dbname" 2>&1 )
+ if [[ "$err" == *"Access denied"* ]]; then
+ read -p "Insert mysql user:" PROMPT_USER
+ read -p "Insert mysql pass:" PROMPT_PASS
+ export MYSQL_PWD=$PROMPT_PASS
+
+ "$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$PROMPT_USER" "$dbname" < "${OUTPUT_FOLDER}${database}_${type}.sql"
+ else
+ exit
+ fi
+ fi
}
function dbasm_import() {
diff --git a/bin/installer/includes/os_configs/debian.sh b/bin/installer/includes/os_configs/debian.sh
index 8678a89178..eb67cfb367 100644
--- a/bin/installer/includes/os_configs/debian.sh
+++ b/bin/installer/includes/os_configs/debian.sh
@@ -1,5 +1,5 @@
-sudo apt-get install git cmake make gcc g++ clang libmysqlclient-dev \
+sudo apt-get install -y git cmake make gcc g++ clang libmysqlclient-dev \
libssl1.0-dev libbz2-dev libreadline-dev libncurses-dev \
-mysql-server libace-6.* libace-dev \ No newline at end of file
+mysql-server libace-6.* libace-dev
diff --git a/bin/installer/includes/os_configs/ubuntu.sh b/bin/installer/includes/os_configs/ubuntu.sh
index f703c2303d..6ed4117ed6 100644
--- a/bin/installer/includes/os_configs/ubuntu.sh
+++ b/bin/installer/includes/os_configs/ubuntu.sh
@@ -1,5 +1,5 @@
-sudo apt-get install git cmake make gcc g++ clang libmysqlclient-dev \
+sudo apt-get install -y git cmake make gcc g++ clang libmysqlclient-dev \
libssl-dev=1.0.2g-1ubuntu4.8 libbz2-dev libreadline-dev libncurses-dev \
-mysql-server libace-6.* libace-dev \ No newline at end of file
+mysql-server libace-6.* libace-dev
diff --git a/conf/config.sh.dist b/conf/config.sh.dist
index 843b704af6..ad0f4826bc 100644
--- a/conf/config.sh.dist
+++ b/conf/config.sh.dist
@@ -71,7 +71,7 @@ DATABASES=(
"WORLD"
)
-OUTPUT_FOLDER="output/"
+OUTPUT_FOLDER="$AC_PATH_ROOT/bin/db_assembler/output/"
#
# Enable following flag
@@ -80,7 +80,7 @@ OUTPUT_FOLDER="output/"
#
BACKUP_ENABLE=true
-BACKUP_FOLDER="backup/"
+BACKUP_FOLDER="$AC_PATH_ROOT/bin/db_assembler/backup/"
# FULL DB
DB_CHARACTERS_PATHS=(