Modified to add database engines.

pull/136/head
Joe Prochazka 2016-04-01 09:46:32 -04:00
rodzic 535049433a
commit e2b89723ab
3 zmienionych plików z 124 dodań i 16 usunięć

Wyświetl plik

@ -58,6 +58,33 @@ read -p "Press enter to continue..." CONTINUE
clear
echo -e "\033[31m"
echo "Do you wish to enable advanced features?"
echo -e "\033[33m"
echo "ENABLING ADVANCED FEATURES ON DEVICES USING SD CARDS CAN SHORTEN THE LIFE OF THE SD CARD IMMENSELY"
echo -e "\033[33m"
echo "By enabling advanced features the portal will log all flights seen as well as the path of the flight."
echo "This data is stored in either a MySQL or SQLite database. This will result in a lot more data being"
echo "stored on your devices hard drive. Keep this and your devices hardware capabilities in mind before"
echo "selecting to enable these features."
echo ""
echo "You have been warned."
echo -e "\033[37m"
read -p "Use portal with advanced features? [y/N] " ADDADVANCED
if [[ $ADDADVANCED =~ ^[yY]$ ]]; then
read -p "Confirm advanced features installation. [y/N] " ADVANCED
fi
if [[ $ADVANCED =~ ^[yY]$ ]]; then
echo -e "\033[31m"
echo "Select Database Engine"
echo -e "\033[33m"
echo " 1) MySQL"
echo " 2) SQLLite"
echo -e "\033[37m"
read -p "Use portal with advanced features? [1] " DATABASEENGINE
fi
## CHECK FOR PREREQUISITE PACKAGES
echo -e "\033[33m"
@ -69,6 +96,83 @@ CheckPackage rrdtool
CheckPackage lighttpd
CheckPackage php5-cgi
CheckPackage libpython2.7
if [[ $ADDADVANCED =~ ^[yY]$ ]]; then
if [[ $DATABASEENGINE == 2 ]]; then
CheckPackage sqlite3
CheckPackage php5-sqlite
else
CheckPackage mysql-server
CheckPackage mysql-client
CheckPackage php5-mysql
CheckPackage python-mysqldb
fi
fi
## CREATE THE DATABASE IF ADVANCED FEATURES WAS SELECTED
if [[ $ADDADVANCED =~ ^[yY]$ ]]; then
if [[ $DATABASEENGINE != 2 ]]; then
echo -e "\033[31m"
echo "Create Database and User"
echo -e "\033[33m"
echo "A database will now be created for you."
echo "Please supply the information pertaining to the new password when asked."
echo -e "\033[37m"
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
if [[ $DATABASEENGINE == 1 ]] || [[ $DATABASEENGINE == "" ]]; then
echo -e "\033[31m"
echo "Creating MySQL database and user..."
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
echo -e "\033[31m"
echo "BE SURE TO WRITE THIS INFORMATION DOWN."
echo -e "\033[33m"
echo "Ii will be needed in order to complete the installation of the portal."
echo ""
echo "Database Server: localhost"
echo "Database User: ${DATABASEUSER}"
echo "Database Password: ${DATABASEPASSWORD}"
echo "Database Name: ${DATABASENAME}"
fi
fi
## SETUP FLIGHT LOGGING SCRIPT
if [[ $ADDADVANCED =~ ^[yY]$ ]]; then
echo -e "\033[31m"
echo -e "Creating configuration file...\033[33m"
case $DATABASEENGINE in
2)
sudo tee -a $BUILDDIR/portal/logging/config.json > /dev/null <<EOF
{
"database":{"type":"sqlite",
"host":"",
"user":"",
"passwd":"",
"db":"${HTMLDIR}/data/portal.sqlite"}
}
;;
*)
sudo tee -a $BUILDDIR/portal/logging/config.json > /dev/null <<EOF
{
"database":{"type":"mysql",
"host":"localhost",
"user":"${DATABASEUSER}",
"passwd":"${DATABASEPASSWORD}",
"db":"${DATABASENAME}"}
}
EOF
;;
esac
fi
## SETUP THE PORTAL WEBSITE

Wyświetl plik

@ -434,11 +434,9 @@ EOF;
<section>
<label for="driver">Database Type</label>
<select class="form-control" name="driver" id="driver"> name="driver">
<option value="xml">XML</option>
<option value="sqlite">SQLite</option>
<option value="mysql">MySQL</option>
<option value="pgsql">PostgreSQL</option>
<option value="sqlsrv">Microsoft SQL Server</option>
<option value="xml">XML (Lite installation only)</option>
<option value="mysql">MySQL (Advanced installation only)</option>
<option value="sqlite">SQLite (Advanced installation only)</option>
</select>
<div class="form-group" id="host-div">
<label for="host">Database Server *</label>

Wyświetl plik

@ -45,22 +45,28 @@ import json
import MySQLdb
import sqlite3
import time
#import urllib2
import os
import urllib2
while True:
# Read the configuration file.
with open(os.path.dirname(os.path.realpath(__file__)) + '/config.json') as config_file:
config = json.load(config_file)
# Read dump1090-mutability's aircraft.json.
with open('/run/dump1090-mutability/aircraft.json') as data_file:
data = json.load(data_file)
#with open('/run/dump1090-mutability/aircraft.json') as data_file:
# data = json.load(data_file)
# For testing using a remote JSON feed.
#response = urllib2.urlopen('http://dump1090.duckdns.org/dump1090/data/aircraft.json')
#data = json.load(response)
response = urllib2.urlopen('http://192.168.254.2/dump1090/data/aircraft.json')
data = json.load(response)
## Connect to a MySQL database.
db = MySQLdb.connect(host="localhost", user="adsbuser", passwd="password", db="adsb")
## Connect to a SQLite database.
#db = sqlite3.connect("/var/www/html/data/portal.sqlite")
if config["database"]["type"] == "sqlite":
## Connect to a SQLite database.
db = sqlite3.connect(config["database"]["db"])
else:
## Connect to a MySQL database.
db = MySQLdb.connect(host=config["database"]["host"], user=config["database"]["user"], passwd=config["database"]["passwd"], db=config["database"]["db"])
# Assign the time to a variable.
time_now = datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
@ -121,4 +127,4 @@ while True:
db.close()
print("Last Run: " + datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S"))
time.sleep(10)
time.sleep(15)