kopia lustrzana https://github.com/jprochazka/adsb-receiver
Modified to add database engines.
rodzic
535049433a
commit
e2b89723ab
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue