Allow remote MySQL setup.

pull/186/head
Joe Prochazka 2016-04-29 23:25:14 -04:00
rodzic 6e74ee0812
commit 6e4b3e830a
1 zmienionych plików z 91 dodań i 78 usunięć

Wyświetl plik

@ -159,7 +159,8 @@ if [[ $ADVANCED =~ ^[yY]$ ]]; then
fi
fi
# Check for prerequisite packages.
## CHECK FOR PREREQUISITE PACKAGES
echo -e "\033[33m"
echo "Installing packages needed to build and fulfill dependencies..."
echo -e "\033[37m"
@ -172,15 +173,18 @@ if [[ $ADVANCED =~ ^[yY]$ ]]; then
if [[ $LOCALDATABASE != 2 ]]; then
# Install MySQL locally.
CheckPackage mysql-server
CheckPackage mysql-client
fi
CheckPackage mysql-client
CheckPackage php5-mysql
CheckPackage python-mysqldb
fi
fi
# Create the database If advanced features was selected
if [[ $ADVANCED =~ ^[yY]$ ]]; then
if [[ $INSTALLED == "n" ]]; then
## CREATE THE DATABASE IF ADVANCED FEATURES WAS SELECTED
if [[ $ADVANCED =~ ^[yY]$ ]]; then
if [[ $DATABASEENGINE != 2 ]]; then
echo -e "\033[31m"
echo "Gathering Database Information"
@ -191,27 +195,33 @@ if [[ $ADVANCED =~ ^[yY]$ ]]; then
echo "created automatically for you. If you are hosting your database remotely"
echo "you will need to manually create the database and user on the remote device."
echo -e "\033[37m"
DATABASEHOST="localhost"
if [[ $LOCALDATABASE == 2 ]]; then
# Ask for remote MySQL address if the database is hosted remotely.
read -p "Remote MySQL Server Address: " DATABASEHOST
else
DATABASEHOST="localhost"
fi
read -p "Password for MySQL root user: " MYSQLROOTPASSWORD
# Check that the supplied password is correct.
while ! mysql -u root -p$MYSQLROOTPASSWORD -h $DATABASEHOST -e ";" ; do
echo -e "\033[31m"
echo -e "Unable to connect to the MySQL server using the supplied password.\033[37m"
read -p "Password for MySQL root user: " MYSQLROOTPASSWORD
done
read -p "New Database Name: " DATABASENAME
read -p "New Database User Name: " DATABASEUSER
read -p "New Database User Password: " DATABASEPASSWORD
# Database creation can only be handled locally.
if [[ $LOCALDATABASE != 2 ]]; then
# Create the database and user as well as assign permissions.
if [[ $DATABASEENGINE == 1 ]] || [[ $DATABASEENGINE == "" ]]; then
echo -e "\033[33m"
echo -e "Creating MySQL database and user...\033[37m"
mysql -uroot -p${MYSQLROOTPASSWORD} -e "CREATE DATABASE ${DATABASENAME};"
mysql -uroot -p${MYSQLROOTPASSWORD} -e "CREATE USER '${DATABASEUSER}'@'localhost' IDENTIFIED BY \"${DATABASEPASSWORD}\";";
mysql -uroot -p${MYSQLROOTPASSWORD} -e "GRANT ALL PRIVILEGES ON ${DATABASENAME}.* TO '${DATABASEUSER}'@'localhost';"
mysql -uroot -p${MYSQLROOTPASSWORD} -e "FLUSH PRIVILEGES;"
fi
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "CREATE DATABASE ${DATABASENAME};"
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "CREATE USER '${DATABASEUSER}'@'localhost' IDENTIFIED BY \"${DATABASEPASSWORD}\";";
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "GRANT ALL PRIVILEGES ON ${DATABASENAME}.* TO '${DATABASEUSER}'@'localhost';"
mysql -uroot -p${MYSQLROOTPASSWORD} -h $DATABASEHOST -e "FLUSH PRIVILEGES;"
fi
echo -e "\033[31m"
@ -231,25 +241,27 @@ if [[ $ADVANCED =~ ^[yY]$ ]]; then
echo "Database Name: ${DATABASENAME}"
echo -e "\033[37m"
read -p "Press enter to continue..." CONTINUE
fi
# Setup the flight logging script.
## SETUP FLIGHT LOGGING SCRIPT
echo -e "\033[33m"
echo -e "Creating configuration file...\033[37m"
case $DATABASEENGINE in
"2")
tee ~/adsb-receiver/build/portal/logging/config.json > /dev/null <<EOF
tee $BUILDDIR/portal/logging/config.json > /dev/null <<EOF
{
"database":{"type":"sqlite",
"host":"",
"user":"",
"passwd":"",
"db":"${HTMLDIR}/data/portal.sqlite"}
"db":"${DOCUMENTROOT}/data/portal.sqlite"}
}
EOF
;;
*)
tee ~/adsb-receiver/build/portal/logging/config.json > /dev/null <<EOF
tee $BUILDDIR/portal/logging/config.json > /dev/null <<EOF
{
"database":{"type":"mysql",
"host":"${DATABASEHOST}",
@ -263,15 +275,15 @@ EOF
# Create and set permissions on the flight logging maintainance script.
PYTHONPATH=`which python`
tee ~/adsb-receiver/build/portal/logging/flights-maint.sh > /dev/null <<EOF
tee $BUILDDIR/portal/logging/flights-maint.sh > /dev/null <<EOF
#!/bin/sh
while true
do
sleep 30
${PYTHONPATH} ~/adsb-receiver/build/portal/logging/flights.py
${PYTHONPATH} ${BUILDDIR}/portal/logging/flights.py
done
EOF
chmod +x ~/adsb-receiver/build/portal/logging/flights-maint.sh
chmod +x $BUILDDIR/portal/logging/flights-maint.sh
# Add flight logging maintainance script to rc.local.
if ! grep -Fxq "${BUILDDIR}/portal/logging/flights-maint.sh &" /etc/rc.local; then
@ -284,7 +296,8 @@ EOF
# Start flight logging.
echo -e "\033[33m"
echo -e "Starting flight logging...\033[37m"
~/adsb-receiver/build/portal/logging/flights-maint.sh &
nohup ${BUILDDIR}/portal/logging/flights-maint.sh > /dev/null 2>&1 &
fi
fi
## FINISH CONFIGURATION