DBHOST="localhost"
DBPORT="3306"
DBNAME="mano_db"
+CREATEDB=""
# Detect paths
MYSQL=$(which mysql)
echo -e " Inits openmano database; deletes previous one and loads from ${DBNAME}_structure.sql"
echo -e " OPTIONS"
echo -e " -u USER database user. '$DBUSER' by default. Prompts if DB access fails"
- echo -e " -p PASS database password. 'No password' by default. Prompts if DB access fails"
+ echo -e " -p PASS database password. 'No password' or 'manopw' by default. Prompts if DB access fails"
echo -e " -P PORT database port. '$DBPORT' by default"
echo -e " -h HOST database host. '$DBHOST' by default"
-# echo -e " -d NAME database name. '$DBNAME' by default. Prompts if DB access fails"
+ echo -e " -d NAME database name. '$DBNAME' by default. Prompts if DB access fails"
echo -e " --help shows this help"
+ echo -e " --createdb forces the deletion and creation of the database"
}
-while getopts ":u:p:P:h:-:" o; do
+while getopts ":u:p:P:d:h:-:" o; do
case "${o}" in
u)
DBUSER="$OPTARG"
P)
DBPORT="$OPTARG"
;;
-# d)
-# DBNAME="$OPTARG"
-# ;;
+ d)
+ DBNAME="$OPTARG"
+ ;;
h)
DBHOST="$OPTARG"
;;
-)
- [ "${OPTARG}" == "help" ] && usage && exit 0
- echo "Invalid option: --$OPTARG" >&2 && usage >&2
- exit 1
+ if [ "${OPTARG}" == "help" ]; then
+ usage && exit 0
+ elif [ "${OPTARG}" == "createdb" ]; then
+ CREATEDB="yes"
+ else
+ echo "Invalid option: --$OPTARG" >&2 && usage >&2
+ exit 1
+ fi
;;
\?)
echo "Invalid option: -$OPTARG" >&2 && usage >&2
[ -n "$DBPASS" ] && DBPASS_="-p$DBPASS"
DBHOST_="-h$DBHOST"
DBPORT_="-P$DBPORT"
-while ! echo ";" | mysql $DBHOST_ $DBPORT_ $DBUSER_ $DBPASS_ >/dev/null 2>&1
+
+TEMPFILE="$(mktemp -q --tmpdir "initmanodb.XXXXXX")"
+trap 'rm -f "$TEMPFILE"' EXIT
+chmod 0600 "$TEMPFILE"
+DEF_EXTRA_FILE_PARAM="--defaults-extra-file=$TEMPFILE"
+if [ -z "${DBPASS}" ]
+then
+ password_ok=""
+ echo -e "[client]\nuser='${DBUSER}'\npassword='manopw'" > "$TEMPFILE"
+ mysql --defaults-extra-file="$TEMPFILE" $DBHOST_ $DBPORT_ $DBNAME -e "quit" >/dev/null 2>&1 && DBPASS="manopw"
+ echo -e "[client]\nuser='${DBUSER}'\npassword=''" > "$TEMPFILE"
+ mysql --defaults-extra-file="$TEMPFILE" $DBHOST_ $DBPORT_ $DBNAME -e "quit" >/dev/null 2>&1 && DBPASS=""
+fi
+echo -e "[client]\nuser='${DBUSER}'\npassword='${DBPASS}'" > "$TEMPFILE"
+
+while ! mysql $DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ -e "quit" >/dev/null 2>&1
do
[ -n "$logintry" ] && echo -e "\nInvalid database credentials!!!. Try again (Ctrl+c to abort)"
[ -z "$logintry" ] && echo -e "\nProvide database credentials"
# read -e -p "mysql database name($DBNAME): " KK
# [ -n "$KK" ] && DBNAME="$KK"
read -e -p "mysql user($DBUSER): " KK
- [ -n "$KK" ] && DBUSER="$KK" && DBUSER_="-u$DBUSER"
+ [ -n "$KK" ] && DBUSER="$KK"
read -e -s -p "mysql password: " DBPASS
- [ -n "$DBPASS" ] && DBPASS_="-p$DBPASS"
- [ -z "$DBPASS" ] && DBPASS_=""
+ echo -e "[client]\nuser='${DBUSER}'\npassword='${DBPASS}'" > "$TEMPFILE"
logintry="yes"
echo
done
+[ -z "${DBPASS}" ] && DBPASS_=""
+[ -n "${DBPASS}" ] && DBPASS_="-p${DBPASS}"
+
+if [ -n "${CREATEDB}" ]; then
+ echo " deleting previous database ${DBNAME}"
+ echo "DROP DATABASE IF EXISTS ${DBNAME}" | mysql $DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_
+ echo " creating database ${DBNAME}"
+ mysqladmin $DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ -s create ${DBNAME} || exit 1
+fi
-#${DIRNAME}/quick_delete_db.sh $MUSER $MPASS $MDB $HOST $PORT
echo " loading ${DIRNAME}/${DBNAME}_structure.sql"
-mysql $DBHOST_ $DBPORT_ $DBUSER_ $DBPASS_ < ${DIRNAME}/${DBNAME}_structure.sql
+#echo 'mysql '$DEF_EXTRA_FILE_PARAM' '$DBHOST_' '$DBPORT_' '$DBNAME' < '${DIRNAME}'/mano_db_structure.sql'
+mysql $DEF_EXTRA_FILE_PARAM $DBHOST_ $DBPORT_ $DBNAME < ${DIRNAME}/mano_db_structure.sql
echo " migrage database version"
${DIRNAME}/migrate_mano_db.sh $DBHOST_ $DBPORT_ $DBUSER_ $DBPASS_ -d$DBNAME