kopia lustrzana https://github.com/jprochazka/adsb-receiver
Allow remote MySQL setup.
rodzic
6e74ee0812
commit
6e4b3e830a
169
bash/image.sh
169
bash/image.sh
|
|
@ -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,84 +173,95 @@ 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 [[ $DATABASEENGINE != 2 ]]; then
|
||||
echo -e "\033[31m"
|
||||
echo "Gathering Database Information"
|
||||
echo -e "\033[33m"
|
||||
echo "Please supply the information pertaining to the new password when asked."
|
||||
echo ""
|
||||
echo "If the database will be hosted locally on this device a database will be"
|
||||
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"
|
||||
if [[ $LOCALDATABASE == 2 ]]; then
|
||||
# Ask for remote MySQL address if the database is hosted remotely.
|
||||
read -p "Remote MySQL Server Address: " DATABASEHOST
|
||||
else
|
||||
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"
|
||||
echo -e "\033[33m"
|
||||
echo "Please supply the information pertaining to the new password when asked."
|
||||
echo ""
|
||||
echo "If the database will be hosted locally on this device a database will be"
|
||||
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"
|
||||
fi
|
||||
read -p "Password for MySQL root user: " MYSQLROOTPASSWORD
|
||||
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
|
||||
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;"
|
||||
if [[ $LOCALDATABASE == 2 ]]; then
|
||||
# Ask for remote MySQL address if the database is hosted remotely.
|
||||
read -p "Remote MySQL Server Address: " DATABASEHOST
|
||||
fi
|
||||
fi
|
||||
read -p "Password for MySQL root user: " MYSQLROOTPASSWORD
|
||||
|
||||
echo -e "\033[31m"
|
||||
echo "BE SURE TO WRITE THIS INFORMATION DOWN."
|
||||
echo -e "\033[33m"
|
||||
echo "This information will be needed in order to complete the installation of the portal."
|
||||
echo ""
|
||||
if [[ $LOCALDATABASE == 2 ]]; then
|
||||
echo -e "\033[31mNOTE:"
|
||||
echo "Being you are hosting your database remotely you will need this information to create"
|
||||
echo "both the database and database user on your remote database server."
|
||||
# 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
|
||||
|
||||
# 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} -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"
|
||||
echo "BE SURE TO WRITE THIS INFORMATION DOWN."
|
||||
echo -e "\033[33m"
|
||||
fi
|
||||
echo "Database Server: ${DATABASEHOST}"
|
||||
echo "Database User: ${DATABASEUSER}"
|
||||
echo "Database Password: ${DATABASEPASSWORD}"
|
||||
echo "Database Name: ${DATABASENAME}"
|
||||
echo -e "\033[37m"
|
||||
read -p "Press enter to continue..." CONTINUE
|
||||
fi
|
||||
echo "This information will be needed in order to complete the installation of the portal."
|
||||
echo ""
|
||||
if [[ $LOCALDATABASE == 2 ]]; then
|
||||
echo -e "\033[31mNOTE:"
|
||||
echo "Being you are hosting your database remotely you will need this information to create"
|
||||
echo "both the database and database user on your remote database server."
|
||||
echo -e "\033[33m"
|
||||
fi
|
||||
echo "Database Server: ${DATABASEHOST}"
|
||||
echo "Database User: ${DATABASEUSER}"
|
||||
echo "Database Password: ${DATABASEPASSWORD}"
|
||||
echo "Database Name: ${DATABASENAME}"
|
||||
echo -e "\033[37m"
|
||||
read -p "Press enter to continue..." CONTINUE
|
||||
|
||||
# Setup the 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
|
||||
fi
|
||||
|
||||
## SETUP FLIGHT LOGGING SCRIPT
|
||||
|
||||
echo -e "\033[33m"
|
||||
echo -e "Creating configuration file...\033[37m"
|
||||
case $DATABASEENGINE in
|
||||
"2")
|
||||
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}",
|
||||
|
|
@ -258,33 +270,34 @@ EOF
|
|||
"db":"${DATABASENAME}"}
|
||||
}
|
||||
EOF
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
# 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
|
||||
# Create and set permissions on the flight logging maintainance script.
|
||||
PYTHONPATH=`which python`
|
||||
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
|
||||
# Add flight logging maintainance script to rc.local.
|
||||
if ! grep -Fxq "${BUILDDIR}/portal/logging/flights-maint.sh &" /etc/rc.local; then
|
||||
echo -e "\033[33m"
|
||||
echo -e "Adding startup line to rc.local...\033[37m"
|
||||
lnum=($(sed -n '/exit 0/=' /etc/rc.local))
|
||||
((lnum>0)) && sudo sed -i "${lnum[$((${#lnum[@]}-1))]}i ${BUILDDIR}/portal/logging/flights-maint.sh &\n" /etc/rc.local
|
||||
fi
|
||||
|
||||
# Start flight logging.
|
||||
echo -e "\033[33m"
|
||||
echo -e "Adding startup line to rc.local...\033[37m"
|
||||
lnum=($(sed -n '/exit 0/=' /etc/rc.local))
|
||||
((lnum>0)) && sudo sed -i "${lnum[$((${#lnum[@]}-1))]}i ${BUILDDIR}/portal/logging/flights-maint.sh &\n" /etc/rc.local
|
||||
echo -e "Starting flight logging...\033[37m"
|
||||
nohup ${BUILDDIR}/portal/logging/flights-maint.sh > /dev/null 2>&1 &
|
||||
fi
|
||||
|
||||
# Start flight logging.
|
||||
echo -e "\033[33m"
|
||||
echo -e "Starting flight logging...\033[37m"
|
||||
~/adsb-receiver/build/portal/logging/flights-maint.sh &
|
||||
fi
|
||||
|
||||
## FINISH CONFIGURATION
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue