2018-09-27 22:19:00 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
#########################################################
|
|
|
|
|
# #
|
|
|
|
|
# NextionDriver installer #
|
|
|
|
|
# #
|
2019-08-16 09:22:52 +02:00
|
|
|
# (c)2018-2019 by ON7LDS & EA5KL #
|
2018-09-27 22:19:00 +02:00
|
|
|
# #
|
2019-08-16 09:22:52 +02:00
|
|
|
# V1.04 #
|
2018-09-27 22:19:00 +02:00
|
|
|
# #
|
|
|
|
|
#########################################################
|
|
|
|
|
|
|
|
|
|
if [ "$(which gcc)" = "" ]; then echo "- I need gcc. Please install it." exit; fi
|
|
|
|
|
if [ "$(which git)" = "" ]; then echo "- I need git. Please install it." exit; fi
|
2018-10-01 22:27:08 +02:00
|
|
|
PATH=/opt/MMDVMHost:$PATH
|
2018-09-29 11:23:01 +02:00
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )" #"
|
|
|
|
|
if [ "$EUID" -ne 0 ]
|
|
|
|
|
then echo "- Please run as root (did you forget to prepend 'sudo' ?)"
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
|
2018-09-27 22:19:00 +02:00
|
|
|
echo "+ Getting NextionDriver ..."
|
|
|
|
|
cd /tmp
|
|
|
|
|
rm -rf /tmp/NextionDriver
|
2019-03-11 09:46:56 +01:00
|
|
|
git clone https://github.com/ElGamal/NextionDriver.git;
|
2018-10-01 22:27:08 +02:00
|
|
|
cd /tmp/NextionDriver 2>/dev/null
|
2018-09-27 22:19:00 +02:00
|
|
|
if [ "$(pwd)" != "/tmp/NextionDriver" ]; then echo "- Getting NextionDriver failed. Cannot continue."; exit; fi
|
|
|
|
|
|
|
|
|
|
|
2018-10-01 22:27:08 +02:00
|
|
|
#######################################################################################
|
2018-09-27 22:19:00 +02:00
|
|
|
|
|
|
|
|
THISVERSION=$(cat NextionDriver.h | grep VERSION | sed "s/.*VERSION //" | sed 's/"//g')
|
|
|
|
|
TV=$(echo $THISVERSION | sed 's/\.//')
|
|
|
|
|
ND=$(which NextionDriver)
|
|
|
|
|
PISTAR=$(if [ -f /etc/pistar-release ];then echo "OK"; fi)
|
|
|
|
|
MMDVM=$(which MMDVMHost)
|
2018-10-01 22:27:08 +02:00
|
|
|
BINDIR=$(echo "$MMDVM" | sed "s/\/MMDVMHost//")
|
2018-09-27 22:19:00 +02:00
|
|
|
CONFIGFILE="MMDVM.ini"
|
2018-09-29 11:23:01 +02:00
|
|
|
CONFIGDIR="/etc/"
|
2019-02-09 19:56:45 +01:00
|
|
|
FILESDIR="/usr/local/etc/"
|
2019-08-16 10:31:29 +02:00
|
|
|
FILESDIRPHP="/var/www/dashboard/mmdvmhost/"
|
2018-10-01 22:27:08 +02:00
|
|
|
SYSTEMCTL="systemctl daemon-reload"
|
2018-09-29 11:23:01 +02:00
|
|
|
MMDVMSTOP="service mmdvmhost stop"
|
|
|
|
|
MMDVMSTART="service mmdvmhost start"
|
2019-02-03 15:20:00 +01:00
|
|
|
NDOUDSTOP="service nextion-helper stop 2>/dev/null"
|
|
|
|
|
NDSTOP="service nextiondriver"
|
2018-10-01 22:27:08 +02:00
|
|
|
|
|
|
|
|
#######################################################################################
|
2018-09-27 22:19:00 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
compileer () {
|
|
|
|
|
echo "+ Compiling ..."
|
|
|
|
|
make &>> /tmp/compileer.log
|
|
|
|
|
RESULT=$?
|
|
|
|
|
if [ "$RESULT" != "0" ]; then
|
|
|
|
|
echo ""
|
|
|
|
|
echo "-------------------------------"
|
|
|
|
|
echo "Compiling NextionDriver failed."
|
|
|
|
|
echo " (you could check errorlog"
|
|
|
|
|
echo " /tmp/compileer.log)"
|
|
|
|
|
echo "Cannot continue ..."
|
|
|
|
|
echo " S O R R Y"
|
|
|
|
|
echo "-------------------------------"
|
|
|
|
|
echo ""
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
checkversion () {
|
|
|
|
|
NV=$(NextionDriver -V | grep version | sed 's/^.*version //' | sed 's/\.//')
|
|
|
|
|
if [ "$NV" != "$TV" ]; then
|
|
|
|
|
echo ""
|
|
|
|
|
echo "- It seems we failed."
|
|
|
|
|
echo "- ($NV != $V)"
|
|
|
|
|
echo "- Sorry."
|
|
|
|
|
echo ""
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
helpfiles () {
|
2019-02-09 19:56:45 +01:00
|
|
|
rm -f /etc/groups.txt
|
|
|
|
|
rm -f /etc/stripped.csv
|
2018-09-27 22:19:00 +02:00
|
|
|
echo "+ Copying groups and users files"
|
2019-08-16 10:38:40 +02:00
|
|
|
cp /tmp/NextionDriver/groups.txt $FILESDIR
|
|
|
|
|
cp /tmp/NextionDriver/stripped.csv $FILESDIR
|
2019-08-16 10:07:03 +02:00
|
|
|
rm -f /var/www/dashboard/mmdvmhost/lh_nextion.php
|
|
|
|
|
echo "+ Copying last heard code"
|
2019-08-16 10:38:40 +02:00
|
|
|
cp /tmp/NextionDriver/lh_nextion.php $FILESDIRPHP
|
2018-09-27 22:19:00 +02:00
|
|
|
}
|
|
|
|
|
herstart () {
|
|
|
|
|
echo -e "\n+ To test if it all works as expected,"
|
|
|
|
|
echo -n "+ we will reboot this hotspot, OK (Y,n) ? "
|
|
|
|
|
x=""
|
|
|
|
|
while [ "$x" != "n" ]; do
|
|
|
|
|
read -n 1 x; while read -n 1 -t .1 y; do x="$x$y"; done
|
|
|
|
|
# echo -n "[$x]"
|
|
|
|
|
if [ "$x" = "" ]; then reboot; fi
|
|
|
|
|
if [ "$x" = "y" ]; then reboot; fi
|
|
|
|
|
if [ "$x" = "Y" ]; then reboot; fi
|
|
|
|
|
if [ "$x" = "N" ]; then x="n"; fi
|
|
|
|
|
done
|
|
|
|
|
echo -e "\n\n+ OK, not rebooting. Trying to start mmdvmhost.\n\n"
|
2018-10-01 22:27:08 +02:00
|
|
|
$SYSTEMCTL
|
2018-09-27 22:19:00 +02:00
|
|
|
$MMDVMSTART
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2018-10-01 22:27:08 +02:00
|
|
|
CHECK=""
|
2018-09-27 22:19:00 +02:00
|
|
|
|
|
|
|
|
if [ "$PISTAR" = "OK" ]; then
|
|
|
|
|
sudo mount -o remount,rw / ; sudo mount -o remount,rw /boot
|
|
|
|
|
CONFIGFILE="mmdvmhost"
|
|
|
|
|
CONFIGDIR="/etc/"
|
2018-10-01 22:27:08 +02:00
|
|
|
CHECK="PISTAR"
|
|
|
|
|
fi
|
|
|
|
|
if [ "$CHECK" = "" ]; then
|
2019-02-09 19:56:45 +01:00
|
|
|
# echo "Bindir [$BINDIR]"
|
2018-10-01 22:27:08 +02:00
|
|
|
if [ "$BINDIR" = "/opt/MMDVMHost" ]; then
|
|
|
|
|
echo ""
|
|
|
|
|
echo "+ Found MMDVMHost in /opt."
|
|
|
|
|
echo "+ I'm going to suppose you followed "
|
|
|
|
|
echo "+ https://g0wfv.wordpress.com/how-to-auto-start-mmdvmhost-as-a-service-on-boot-in-raspbian-jessie/"
|
|
|
|
|
echo ""
|
|
|
|
|
echo ""
|
|
|
|
|
CONFIGFILE="MMDVMHost.ini"
|
|
|
|
|
CONFIGDIR="/opt/MMDVMHost"
|
|
|
|
|
CHECK="JESSIE"
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
if [ "$CHECK" = "" ]; then
|
|
|
|
|
echo "- I could not find out which system this is."
|
2018-09-27 22:19:00 +02:00
|
|
|
echo "- At this moment, I cannot yet automaticly install NextionDriver"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "- Sorry."
|
|
|
|
|
echo ""
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
if [ "$MMDVM" = "" ]; then
|
|
|
|
|
echo ""
|
|
|
|
|
echo "- No MMDVMHost found,"
|
|
|
|
|
echo "- so why would you install NextionDriver ?"
|
|
|
|
|
echo "- Cannot continue"
|
|
|
|
|
echo ""
|
|
|
|
|
echo "- Sorry."
|
|
|
|
|
echo ""
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
2019-02-03 15:20:00 +01:00
|
|
|
########## Check for older installation ##########
|
|
|
|
|
if [ $(cat /usr/local/sbin/mmdvmhost.service | grep extion | wc -l) -gt 0 ]; then
|
|
|
|
|
echo -e "I older installation found, removing ..."
|
|
|
|
|
ND=""
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-09-27 22:19:00 +02:00
|
|
|
########## Check for Install ##########
|
|
|
|
|
if [ "$ND" = "" ]; then
|
|
|
|
|
echo "+ No NextionDriver found, trying to install one."
|
|
|
|
|
compileer
|
2018-10-01 22:27:08 +02:00
|
|
|
$SYSTEMCTL
|
2019-02-03 15:20:00 +01:00
|
|
|
$NDOUDSTOP 2>/dev/null
|
2018-10-01 22:27:08 +02:00
|
|
|
$NDSTOP
|
2018-09-29 11:23:01 +02:00
|
|
|
$MMDVMSTOP
|
2018-09-27 22:19:00 +02:00
|
|
|
killall -q -I MMDVMHost
|
2018-10-01 22:27:08 +02:00
|
|
|
killall -9 -q -I MMDVMHost
|
2019-02-03 15:20:00 +01:00
|
|
|
systemctl disable mmdvmhost
|
|
|
|
|
systemctl disable nextion-helper 2>/dev/null
|
|
|
|
|
systemctl disable nextiondriver
|
2018-10-01 22:27:08 +02:00
|
|
|
if [ "$CHECK" = "PISTAR" ]; then
|
2019-02-03 15:20:00 +01:00
|
|
|
echo "+ found PISTAR"
|
|
|
|
|
cp $DIR"/nextiondriver.service.binary.pistar" /usr/local/sbin/nextiondriver.service
|
|
|
|
|
if [ $(cat /usr/local/sbin/mmdvmhost.service | grep extion | wc -l) -gt 0 ]; then
|
|
|
|
|
echo "+ Restoring mmdvmhost.service binary"
|
|
|
|
|
rm /usr/local/sbin/mmdvmhost.service
|
|
|
|
|
git --work-tree=/usr/local/sbin/ --git-dir=/usr/local/sbin/.git checkout mmdvmhost.service
|
|
|
|
|
fi
|
|
|
|
|
echo "+ Installing services"
|
|
|
|
|
cp $DIR"/mmdvmhost.service.pistar" /lib/systemd/system/mmdvmhost.service
|
|
|
|
|
cp $DIR"/nextiondriver.service.pistar" /lib/systemd/system/nextiondriver.service
|
2018-10-01 22:27:08 +02:00
|
|
|
fi
|
|
|
|
|
if [ "$CHECK" = "JESSIE" ]; then
|
|
|
|
|
cp $DIR"/mmdvmhost.service.jessie" /lib/systemd/system/mmdvmhost.service
|
|
|
|
|
cp $DIR"/mmdvmhost.timer.jessie" /lib/systemd/system/mmdvmhost.timer
|
2019-02-03 15:20:00 +01:00
|
|
|
rm -f /lib/systemd/system/nextion-helper.service
|
|
|
|
|
cp $DIR"/nextiondriver.service.jessie" /lib/systemd/system/nextiondriver.service
|
2018-10-01 22:27:08 +02:00
|
|
|
fi
|
2018-09-27 22:19:00 +02:00
|
|
|
cp NextionDriver $BINDIR
|
2019-02-03 15:20:00 +01:00
|
|
|
systemctl enable mmdvmhost
|
|
|
|
|
systemctl enable nextiondriver
|
2018-09-27 22:19:00 +02:00
|
|
|
echo "+ Check version :"
|
|
|
|
|
NextionDriver -V
|
|
|
|
|
checkversion
|
|
|
|
|
helpfiles
|
|
|
|
|
echo -e "+ NextionDriver installed\n"
|
|
|
|
|
echo -e "+ -----------------------------------------------"
|
|
|
|
|
echo -e "+ We will now start the configuration program ...\n"
|
2018-09-29 11:23:01 +02:00
|
|
|
$DIR/NextionDriver_ConvertConfig $CONFIGDIR$CONFIGFILE
|
2018-09-27 22:19:00 +02:00
|
|
|
herstart
|
|
|
|
|
exit
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
########## Check for Update ##########
|
|
|
|
|
VERSIE=$($ND -V | grep version | sed "s/^.*version //")
|
|
|
|
|
V=$(echo $VERSIE | sed 's/\.//')
|
|
|
|
|
echo "+ NextionDriver $VERSIE found at $ND"
|
2019-02-09 19:56:45 +01:00
|
|
|
echo "+ We are at version $THISVERSION"
|
2018-09-27 22:19:00 +02:00
|
|
|
|
|
|
|
|
if [ $TV -gt $V ]; then
|
|
|
|
|
echo "+ Start Update"
|
|
|
|
|
compileer
|
2018-10-01 22:27:08 +02:00
|
|
|
$SYSTEMCTL
|
|
|
|
|
$NDSTOP
|
2018-09-29 11:23:01 +02:00
|
|
|
$MMDVMSTOP
|
2018-09-27 22:19:00 +02:00
|
|
|
killall -q -I MMDVMHost
|
2018-10-01 22:27:08 +02:00
|
|
|
killall -q -I NextionDriver
|
|
|
|
|
killall -9 -q -I MMDVMHost
|
|
|
|
|
killall -9 -q -I NextionDriver
|
2018-09-27 22:19:00 +02:00
|
|
|
cp NextionDriver $BINDIR
|
|
|
|
|
echo -e "\n+ Check version"
|
|
|
|
|
NextionDriver -V
|
|
|
|
|
checkversion
|
|
|
|
|
helpfiles
|
|
|
|
|
echo -e "\n+ NextionDriver updated\n"
|
|
|
|
|
herstart
|
|
|
|
|
else
|
|
|
|
|
echo -e "\n- No need to update.\n"
|
|
|
|
|
exit
|
|
|
|
|
fi
|