kopia lustrzana https://github.com/km4ack/pi-build
update
rodzic
a93bcddcee
commit
28200e3443
|
@ -0,0 +1,869 @@
|
|||
#!/bin/bash
|
||||
|
||||
##################################################################
|
||||
# #
|
||||
# # # # # # # ##### # # #
|
||||
# # # # # # # ## # # # # # #
|
||||
# # # # # # # # # # # # # #
|
||||
# ## # # ##### ####### # ## #
|
||||
# # # # # # # # # # # #
|
||||
# # # # # # # # # # # #
|
||||
# # # # # # # # ##### # # #
|
||||
# #
|
||||
##################################################################
|
||||
|
||||
MYPATH=$HOME/pi-build
|
||||
BASE=$MYPATH/base.txt
|
||||
FUNCTIONS=$MYPATH/functions
|
||||
ADDITIONAL=$MYPATH/additional.txt
|
||||
UTILITY=$MYPATH/utility.txt
|
||||
FLSUITE=$MYPATH/flsuite.txt
|
||||
CONFIG=$MYPATH/config
|
||||
LOGO=$MYPATH/logo.png
|
||||
TEMPCRON=$MYPATH/cron.tmp
|
||||
VERSION=$(cat $MYPATH/changelog | grep version= | sed 's/version=//')
|
||||
|
||||
FINISH(){
|
||||
if [ -f "$BASE" ]; then
|
||||
rm $BASE
|
||||
fi
|
||||
|
||||
if [ -f "$ADDITIONAL" ]; then
|
||||
rm $ADDITIONAL
|
||||
fi
|
||||
|
||||
if [ -f "$FLSUITE" ]; then
|
||||
rm $FLSUITE
|
||||
fi
|
||||
|
||||
if [ -f "$UTILITY" ]; then
|
||||
rm $UTILITY
|
||||
fi
|
||||
}
|
||||
|
||||
trap FINISH EXIT
|
||||
|
||||
|
||||
yad --width=550 --height=250 --text-align=center --center --title="Update" \
|
||||
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
||||
--text="\r\r\r\rFirst we need to scan the system to see what is installed, \
|
||||
then check for updates on the web. This should take less than a minute Ready when you are." \
|
||||
--button="Exit":1 \
|
||||
--button="Start Scan":2
|
||||
BUT=$?
|
||||
if [ $BUT = 252 ] || [ $BUT = 1 ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
CHECK(){
|
||||
#----------------------------------------------------#
|
||||
# Hotspot
|
||||
#----------------------------------------------------#
|
||||
HOTSPOT=$(ls /usr/bin/ | grep autohotspotN)
|
||||
if [ -z "$HOTSPOT" ]; then
|
||||
HOTSPOT="Not Installed"
|
||||
else
|
||||
HOTSPOT="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# Hotspot tools
|
||||
#----------------------------------------------------#
|
||||
if [ ! -d $HOME/hotspot-tools2 ]; then
|
||||
HSTOOLS="Not Installed"
|
||||
else
|
||||
HSTOOLS="Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# AX25
|
||||
#----------------------------------------------------#
|
||||
if [ ! -d /etc/ax25 ]; then
|
||||
AX25="Not Installed"
|
||||
else
|
||||
AX25="Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# GPS
|
||||
#----------------------------------------------------#
|
||||
if ! hash gpsd 2>/dev/null; then
|
||||
GPS="Not Installed"
|
||||
else
|
||||
GPS="Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# PULSE
|
||||
#----------------------------------------------------#
|
||||
if ! hash pulseaudio 2>/dev/null; then
|
||||
PULSE="Not Installed"
|
||||
else
|
||||
PULSE="Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# ARDOP
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/ardop/piardopc ]; then
|
||||
ARDOP="Installed"
|
||||
else
|
||||
ARDOP="Not Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# ARDOP GUI
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/ardop/piARDOP_GUI ]; then
|
||||
ARDOPGUI="Installed"
|
||||
else
|
||||
ARDOPGUI="Not Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# JS8Call
|
||||
#----------------------------------------------------#
|
||||
if ! hash js8call 2>/dev/null; then
|
||||
JS8="Not Installed"
|
||||
else
|
||||
JS8="Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# WSJTX
|
||||
#----------------------------------------------------#
|
||||
if ! hash wsjtx 2>/dev/null; then
|
||||
FT8="Not Installed"
|
||||
else
|
||||
FT8="Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# CONKY
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/.conkyrc ]; then
|
||||
CONKY=Installed
|
||||
else
|
||||
CONKY="Not Installed"
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# M0IAX
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/bin/JS8CallUtils_v2.py ]; then
|
||||
M0IAX=Installed
|
||||
else
|
||||
M0IAX="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# RIG CONTROL - HAMLIB
|
||||
#----------------------------------------------------#
|
||||
if ! hash rigctl 2>/dev/null; then
|
||||
RIG="Not_Installed"
|
||||
else
|
||||
echo "Checking Rig Control"
|
||||
RIG=$(rigctl --version | grep Hamlib | sed s/"rigctl(d),\ Hamlib\ "//)
|
||||
NEWRIG=$(curl -s https://sourceforge.net/projects/hamlib/files/latest/download | \
|
||||
grep -o https://downloads.sourceforge.net/project/hamlib/hamlib/[0-9].[0-9] | \
|
||||
head -n 1 | awk -F "/" '{print $7}')
|
||||
|
||||
if (( $(echo "$NEWRIG $RIG" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
RIG=NEEDS-UPDATE
|
||||
else
|
||||
RIG="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# FLDIGI
|
||||
#----------------------------------------------------#
|
||||
echo "Checking FLDIGI"
|
||||
if ! hash fldigi 2>/dev/null; then
|
||||
FLDIGI="Not_Installed"
|
||||
else
|
||||
FLDIGI=$(fldigi --version | awk 'FNR == 1 {print $2}')
|
||||
NEWFLDIGI=$(curl -s https://sourceforge.net/projects/fldigi/files/fldigi/ | \
|
||||
grep .tar.gz | head -1 | awk -F "-" '{print $2}' | awk -F ".tar" '{print $1}')
|
||||
|
||||
if (( $(echo "$NEWFLDIGI $FLDIGI" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
FLDIGI=NEEDS-UPDATE
|
||||
else
|
||||
FLDIGI="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# FLWRAP
|
||||
#----------------------------------------------------#
|
||||
echo "Checking FLWRAP"
|
||||
if ! hash flwrap 2>/dev/null; then
|
||||
FLWRAP="Not_Installed"
|
||||
else
|
||||
FLWRAP=$(flwrap --version | awk 'FNR == 1 {print $2}')
|
||||
NEWFLWRAP=$(curl -s http://www.w1hkj.com/files/flwrap/ | grep .tar.gz | sed 's/<li><a\ href="//' | \
|
||||
sed 's/">\ flwrap.*$//' | sed 's/flwrap-//' | sed 's/.tar.gz//')
|
||||
|
||||
if (( $(echo "$NEWFLWRAP $FLWRAP" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
FLWRAP=NEEDS-UPDATE
|
||||
else
|
||||
FLWRAP="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# FLRIG
|
||||
#----------------------------------------------------#
|
||||
echo "Checking FLRIG"
|
||||
if ! hash flrig 2>/dev/null; then
|
||||
FLRIG="Not_Installed"
|
||||
else
|
||||
FLRIG=$(flrig --version | awk 'FNR == 1 {print $2}')
|
||||
NEWFLRIG=$(curl -s https://sourceforge.net/projects/fldigi/files/flrig/ | \
|
||||
grep .tar.gz | head -1 | awk -F "-" '{print $2}' | awk -F ".tar.gz" '{print $1}')
|
||||
|
||||
if (( $(echo "$NEWFLRIG $FLRIG" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
FLRIG=NEEDS-UPDATE
|
||||
else
|
||||
FLRIG="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# FLAMP
|
||||
#----------------------------------------------------#
|
||||
echo "Checking FLAMP"
|
||||
if ! hash flamp 2>/dev/null; then
|
||||
FLAMP="Not_Installed"
|
||||
else
|
||||
FLAMP=$(flamp --version | awk 'FNR == 1 {print $2}')
|
||||
NEWFLAMP=$(curl -s https://sourceforge.net/projects/fldigi/files/flamp/ | \
|
||||
grep .tar.gz | head -1 | awk -F "-" '{print $2}' | awk -F ".tar.gz" '{print $1}')
|
||||
|
||||
if (( $(echo "$NEWFLAMP $FLAMP" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
FLAMP=NEEDS-UPDATE
|
||||
else
|
||||
FLAMP="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# FLMSG
|
||||
#----------------------------------------------------#
|
||||
echo "Checking FLMSG"
|
||||
if ! hash flmsg 2>/dev/null; then
|
||||
FLMSG="Not_Installed"
|
||||
else
|
||||
FLMSG=$(flmsg --version | awk 'FNR == 1 {print $2}')
|
||||
NEWFLMSG=$(curl -s https://sourceforge.net/projects/fldigi/files/flmsg/ | \
|
||||
grep .tar.gz | head -1 | awk -F "-" '{print $2}' | awk -F ".tar.gz" '{print $1}')
|
||||
|
||||
if (( $(echo "$NEWFLMSG $FLMSG" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
FLMSG=NEEDS-UPDATE
|
||||
else
|
||||
FLMSG="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# FLNET
|
||||
#----------------------------------------------------#
|
||||
echo "Checking FLNET"
|
||||
if ! hash flnet 2>/dev/null; then
|
||||
FLNET="Not_Installed"
|
||||
else
|
||||
FLNET=$(flnet --version | awk 'FNR == 1 {print $2}')
|
||||
NEWFLNET=$(curl -s https://sourceforge.net/projects/fldigi/files/flnet/ | \
|
||||
grep .tar.gz | head -1 | awk -F "-" '{print $2}' | awk -F ".tar" '{print $1}')
|
||||
|
||||
if (( $(echo "$NEWFLNET $FLNET" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
FLNET=NEEDS-UPDATE
|
||||
else
|
||||
FLNET="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# Pat Winlink
|
||||
#----------------------------------------------------#
|
||||
echo "Checking Pat Winlink"
|
||||
if ! hash pat 2>/dev/null; then
|
||||
PAT="Not_Installed"
|
||||
else
|
||||
PAT=$(pat version | awk -F 'v' '{print $2}' | head -c 5)
|
||||
NEWPAT=$(curl -s https://github.com/la5nta/pat/releases | grep -m 1 "amd64.deb"\
|
||||
| awk -F '_' '{print $2}')
|
||||
|
||||
if (( $(echo "$NEWPAT $PAT" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
PAT=NEEDS-UPDATE
|
||||
else
|
||||
PAT="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# CHRIP
|
||||
#----------------------------------------------------#
|
||||
echo "Checking Chirp"
|
||||
if ! hash chirpw 2>/dev/null; then
|
||||
CHIRP="Not_Installed"
|
||||
else
|
||||
CP=$(chirpw --version)
|
||||
CHIRP=$(echo $CP | awk '{ print $2 }' | sed 's/daily-//')
|
||||
NEWCHIRP=$(curl -s https://trac.chirp.danplanet.com/chirp_daily/LATEST/ | \
|
||||
grep .tar.gz | awk -F 'chirp-daily-' '{print $2}' | head -c 8)
|
||||
|
||||
if (( $(echo "$NEWCHIRP $CHIRP" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
CHIRP=NEEDS-UPDATE
|
||||
else
|
||||
CHIRP="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# DIREWOLF
|
||||
#----------------------------------------------------#
|
||||
echo "Checking Direwolf"
|
||||
if ! hash direwolf 2>/dev/null; then
|
||||
DIRE="Not_Installed"
|
||||
else
|
||||
DIRE=$(direwolf -S -t 0 | head -1 | sed 's/Dire\ Wolf\ version\ //')
|
||||
wget -P /tmp/ https://raw.githubusercontent.com/wb2osz/direwolf/master/CHANGES.md > /dev/null 2>&1
|
||||
NEWDIRE=$(cat /tmp/CHANGES.md | head -5 | tail -1 | awk '{ print $3 }')
|
||||
|
||||
if (( $(echo "$NEWDIRE $DIRE" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
DIRE=NEEDS-UPDATE
|
||||
else
|
||||
DIRE="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# Pat Menu
|
||||
#----------------------------------------------------#
|
||||
echo "Checking Pat Menu"
|
||||
if [ ! -d $HOME/patmenu2 ]; then
|
||||
PATMENU="Not_Installed"
|
||||
else
|
||||
cd $HOME/patmenu2/
|
||||
wget -O $HOME/patmenu2/latest https://raw.githubusercontent.com/km4ack/patmenu2/master/changelog > /dev/null 2>&1
|
||||
LATEST=$(cat $HOME/patmenu2/latest | grep '^release' | sed 's/release=//')
|
||||
CURRENT=$(cat $HOME/patmenu2/changelog | grep '^release' | sed 's/release=//')
|
||||
rm $HOME/patmenu2/latest > /dev/null 2>&1
|
||||
if (( $(echo "$LATEST $CURRENT" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
PATMENU="NEEDS-UPDATE"
|
||||
else
|
||||
PATMENU="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# Hot Spot Tools
|
||||
#----------------------------------------------------#
|
||||
if [ ! -d $HOME/hotspot-tools2 ]; then
|
||||
HSTOOLS="Not_Installed"
|
||||
else
|
||||
CURRENT=$(cat $HOME/hotspot-tools2/changelog | grep version= | sed 's/version=//')
|
||||
LATEST=$(curl -s https://raw.githubusercontent.com/km4ack/hotspot-tools2/master/changelog | grep version= | sed 's/version=//')
|
||||
if (( $(echo "$LATEST $CURRENT" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
HSTOOLS="NEEDS-UPDATE"
|
||||
else
|
||||
HSTOOLS="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# GARIM
|
||||
#----------------------------------------------------#
|
||||
echo "Checking GARIM"
|
||||
if ! hash garim 2>/dev/null; then
|
||||
GARIM="Not_Installed"
|
||||
else
|
||||
GARIM=$(garim --version | head -n1 | awk -F ' ' '{print $2}')
|
||||
NEWGARIM=$(curl -s https://www.whitemesa.net/garim/garim.html | grep -m 1 \
|
||||
"armv7l.tar.gz" | awk -F '-' '{print $2}')
|
||||
if (( $(echo "$NEWGARIM $GARIM" | awk '{print ($1 > $2)}') ))
|
||||
then
|
||||
GARIM=NEEDS-UPDATE
|
||||
else
|
||||
GARIM="is_latest_version"
|
||||
fi
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# XASTIR
|
||||
#----------------------------------------------------#
|
||||
XA=$(ls /usr/bin/ | grep xastir)
|
||||
if [ -z "$XA" ]; then
|
||||
XASTIR="Not Installed"
|
||||
else
|
||||
XASTIR="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# YAAC
|
||||
#----------------------------------------------------#
|
||||
YAAC=$(ls $HOME | grep YAAC)
|
||||
if [ -z "$YAAC" ]; then
|
||||
YAAC="Not Installed"
|
||||
else
|
||||
YAAC="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# PYQSO
|
||||
#----------------------------------------------------#
|
||||
if ! hash pyqso 2>/dev/null; then
|
||||
PYQSO="Not Installed"
|
||||
else
|
||||
PYQSO="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# QSSTV
|
||||
#----------------------------------------------------#
|
||||
if ! hash qsstv 2>/dev/null; then
|
||||
QSSTV="Not Installed"
|
||||
else
|
||||
QSSTV="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# GRIDTRACKER
|
||||
#----------------------------------------------------#
|
||||
GT=$(ls $HOME | grep GridTracker)
|
||||
if [ -z "$GT" ]; then
|
||||
GRIDTRACK="Not Installed"
|
||||
else
|
||||
GRIDTRACK="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# PROPAGATION
|
||||
#----------------------------------------------------#
|
||||
if ! hash voacapl 2>/dev/null; then
|
||||
PROP="Not Installed"
|
||||
else
|
||||
PROP="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# CQRLOG
|
||||
#----------------------------------------------------#
|
||||
if ! hash cqrlog 2>/dev/null; then
|
||||
CQRLOG="Not Installed"
|
||||
else
|
||||
CQRLOG="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# EES
|
||||
#----------------------------------------------------#
|
||||
if [ -f /var/www/html/email.php ]; then
|
||||
EES="Installed"
|
||||
else
|
||||
EES="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# Pi-APRS
|
||||
#----------------------------------------------------#
|
||||
if [ -d $HOME/Pi-APRS ]; then
|
||||
PIAPRS=Installed
|
||||
else
|
||||
PIAPRS="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# Temp Convert
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/bin/converttemp ]; then
|
||||
TEMPCONVERT="Installed"
|
||||
else
|
||||
TEMPCONVERT="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# GPARTED
|
||||
#----------------------------------------------------#
|
||||
if ! hash gparted 2>/dev/null; then
|
||||
GPARTED="Not Installed"
|
||||
else
|
||||
GPARTED="Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# DIPOLE CALCULATOR
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/bin/dipole ]; then
|
||||
DIPOLE="Installed"
|
||||
else
|
||||
DIPOLE="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# SHOWLOG | Log file viewer
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/bin/showlog ]; then
|
||||
SHOWLOG="Installed"
|
||||
else
|
||||
SHOWLOG="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# Call Sign Lookup GETCALL
|
||||
#----------------------------------------------------#
|
||||
if [ -f $HOME/bin/getcall ]; then
|
||||
CALLSIGN="Installed"
|
||||
else
|
||||
CALLSIGN="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# HamClock
|
||||
#----------------------------------------------------#
|
||||
HAMCLOCK=$(ls /usr/local/bin | grep hamclock)
|
||||
if [ -n "$HAMCLOCK" ]; then
|
||||
HAMCLOCK="Installed"
|
||||
else
|
||||
HAMCLOCK="Not Installed"
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# Real Time Clock
|
||||
#----------------------------------------------------#
|
||||
RTC="Unknown"
|
||||
|
||||
}
|
||||
CHECK
|
||||
#####################################
|
||||
# Get User Call
|
||||
#####################################
|
||||
CALL(){
|
||||
source $MYPATH/config
|
||||
INFO=$(yad --form --width=420 --text-align=center --center --title="Build-a-Pi" \
|
||||
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
||||
--text="<b>version $VERSION</b>" \
|
||||
--field="Call Sign*" "$CALL" \
|
||||
--field="<b>* Required</b>":LBL \
|
||||
--button="Continue":2)
|
||||
BUT=$?
|
||||
if [ $BUT = 252 ]; then
|
||||
exit
|
||||
fi
|
||||
}
|
||||
CALL
|
||||
CALL=$(echo $INFO | awk -F "|" '{print $1}')
|
||||
CALL=${CALL^^}
|
||||
|
||||
echo "CALL=$CALL" > $CONFIG
|
||||
|
||||
#Verify call not empty
|
||||
if [ -z "$CALL" ]; then
|
||||
yad --form --width=420 --text-align=center --center --title="Build-a-Pi" --text-align=center \
|
||||
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
||||
--text="<b>Call Can't be Blank</b>" \
|
||||
--button=gtk-ok
|
||||
CALL
|
||||
fi
|
||||
|
||||
|
||||
#----------------------------------------------------#
|
||||
# BASE APP MENU
|
||||
#----------------------------------------------------#
|
||||
yad --center --list --checklist --width=600 --height=600 --separator="" \
|
||||
--image $LOGO --column=Check --column=App --column=status --column=description --print-column=2 \
|
||||
--window-icon=$LOGO --image-on-top --text-align=center \
|
||||
--text="<big><big><b>Base Apps</b></big></big>" --title="Update" \
|
||||
false "HAMLIB" "$RIG" "Rig Control" \
|
||||
false "HOTSPOT" "$HOTSPOT" "Hot Spot Generator for Portable Ops" \
|
||||
false "HSTOOLS" "$HSTOOLS" "Tools to Manage HotSpot" \
|
||||
false "GPS" "$GPS" "GPS Software" \
|
||||
false "ARDOP" "$ARDOP" "Mode for HF" \
|
||||
false "ARDOPGUI" "$ARDOPGUI" "GUI for ARDOP" \
|
||||
false "DIREWOLF" "$DIRE" "Software TNC" \
|
||||
false "AX25" "$AX25" "Data Link Layer Protocol" \
|
||||
false "PULSE" "$PULSE" "Sound server" \
|
||||
--button="Exit":1 \
|
||||
--button="Next":2 > $BASE
|
||||
BUT=$?
|
||||
if [ $BUT = 1 ] || [ $BUT = 252 ];then
|
||||
exit
|
||||
fi
|
||||
|
||||
#check if hotspot is chosen for install & get info if needed
|
||||
HS=$(cat $BASE | grep HOTSPOT)
|
||||
if [ -n "$HS" ]; then
|
||||
HSINFO(){
|
||||
#unblock wifi
|
||||
sudo rfkill unblock all > /dev/null 2>&1
|
||||
#bring wifi up
|
||||
sudo ifconfig wlan0 up
|
||||
LIST=$(sudo iw dev "wlan0" scan ap-force | egrep "^BSS|SSID:" | grep SSID: | sed 's/SSID://' | awk '{ print $1 }')
|
||||
LIST=$(echo $LIST | sed 's/ /|/g')
|
||||
|
||||
HSINFO=$(yad --center --form --width=400 --height=400 --separator="|" --item-separator="|" \
|
||||
--image $LOGO --column=Check --column=App --column=Description \
|
||||
--window-icon=$LOGO --image-on-top --text-align=center \
|
||||
--text="<b>HotSpot Information\r\rPlease enter the information\rbelow \
|
||||
for the Hot Spot\r</b>NOTE: The last field is the password for the hotspot. You will use this password to \
|
||||
connect to your Pi when it is in hotspot mode <b>This password can only contain letters and numbers</b>" \
|
||||
--title="Build-a-Pi" \
|
||||
--field="Home Wifi SSID":CB "$LIST" \
|
||||
--field="Home Wifi Password" \
|
||||
--field="Hot Spot Password" \
|
||||
--button="Exit":1 \
|
||||
--button="Continue":2 \
|
||||
--button="Refresh Wifi":3)
|
||||
#} THIS IS WHERE ORIGINAL FUNCTION STOPPED################
|
||||
#HSINFO SEE COMMENT PREVIOUS LINE
|
||||
BUT=$?
|
||||
if [ $BUT = 3 ];then
|
||||
HSINFO #Call HSINFO function
|
||||
fi
|
||||
|
||||
if [ $BUT = 252 ] || [ $BUT = 1 ]; then
|
||||
exit
|
||||
fi
|
||||
} #THIS IS NEW FUNCTION END FOR TESTING####################
|
||||
|
||||
|
||||
HSINFO
|
||||
fi
|
||||
SHACKSSID=$(echo $HSINFO | awk -F "|" '{print $1}')
|
||||
SHACKPASS=$(echo $HSINFO | awk -F "|" '{print $2}')
|
||||
HSPASS=$(echo $HSINFO | awk -F "|" '{print $3}')
|
||||
|
||||
#Check password length
|
||||
if [ -n "$HS" ]; then
|
||||
COUNT=${#HSPASS}
|
||||
if [ $COUNT -lt 8 ]
|
||||
then
|
||||
yad --center --form --width=300 --height=200 --separator="|" \
|
||||
--image $LOGO --column=Check --column=App --column=Description \
|
||||
--window-icon=$LOGO --image-on-top --text-align=center \
|
||||
--text="<b>Hotspot password has to be 8-63 characters</b>" --title="Build-a-Pi" \
|
||||
--button=gtk-ok
|
||||
HSINFO
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "SHACKSSID=$SHACKSSID" >> $CONFIG
|
||||
echo "SHACKPASS=$SHACKPASS" >> $CONFIG
|
||||
echo "HSPASS=$HSPASS" >> $CONFIG
|
||||
|
||||
|
||||
#----------------------------------------------------#
|
||||
# FLSUITE APP MENU
|
||||
#----------------------------------------------------#
|
||||
yad --center --list --checklist --width=600 --height=600 --separator="" \
|
||||
--image $LOGO --column=Check --column=App --column=status --column=description --print-column=2 \
|
||||
--window-icon=$LOGO --image-on-top --text-align=center \
|
||||
--text="<big><big><b>FLDIGI Suite</b></big></big>" --title="Update" \
|
||||
false "FLRIG" "$FLRIG" "Rig Control GUI" \
|
||||
false "FLDIGI" "$FLDIGI" "Digital Software" \
|
||||
false "FLAMP" "$FLAMP" "File Transfer Program" \
|
||||
false "FLNET" "$FLNET" "Net Control Software" \
|
||||
false "FLMSG" "$FLMSG" "Form Manager" \
|
||||
false "FLWRAP" "$FLWRAP" "File Encapsulation" \
|
||||
--button="Exit":1 \
|
||||
--button="Next":2 > $FLSUITE
|
||||
BUT=$?
|
||||
if [ $BUT = 1 ] || [ $BUT = 252 ];then
|
||||
exit
|
||||
fi
|
||||
#----------------------------------------------------#
|
||||
# HAM APP MENU
|
||||
#----------------------------------------------------#
|
||||
yad --center --list --checklist --width=600 --height=600 --separator="" \
|
||||
--image $LOGO --column=Check --column=App --column=status --column=description --print-column=2 \
|
||||
--window-icon=$LOGO --image-on-top --text-align=center \
|
||||
--text="<big><big><b>HAM Apps</b></big></big>" --title="Update" \
|
||||
false "PAT" "$PAT" "Radio Email Application" \
|
||||
false "PAT-MENU" "$PATMENU" "Control for Pat Winlink" \
|
||||
false "CHIRP" "$CHIRP" "Program Radios" \
|
||||
false "GARIM" "$GARIM" "File Transfer Program " \
|
||||
false "M0IAX" "$M0IAX" "Tools for JS8Call messages" \
|
||||
false "CONKY" "$CONKY" "System Information Display" \
|
||||
false "WSJTX" "$FT8" "Weak signal digital mode software" \
|
||||
false "JS8CALL" "$JS8" "Weak signal digital mode software" \
|
||||
false "XASTIR" "$XASTIR" "APRS Client" \
|
||||
false "YAAC" "$YAAC" "Yet Another APRS Client" \
|
||||
false "PI-APRS" "$PIAPRS" "APRS Messaging Client" \
|
||||
false "PYQSO" "$PYQSO" "Logging Software" \
|
||||
false "CQRLOG" "$CQRLOG" "Logging Software" \
|
||||
false "QSSTV" "$QSSTV" "Slow scan TV" \
|
||||
false "GRIDTRACKER" "$GRIDTRACK" "Track grids in WSJTX" \
|
||||
false "HAMCLOCK" "$HAMCLOCK" "Clock for Ham Radio Ops" \
|
||||
false "PROPAGATION" "$PROP" "Propagation prediction" \
|
||||
false "EES" "$EES" "KM4ACK Emergency Email Server" \
|
||||
--button="Exit":1 \
|
||||
--button="Next":2 > $ADDITIONAL
|
||||
BUT=$?
|
||||
if [ $BUT = 1 ] || [ $BUT = 252 ];then
|
||||
exit
|
||||
fi
|
||||
|
||||
#check if hamclock is being installed
|
||||
HCCHECK=$(cat $ADDITIONAL | grep HAMCLOCK)
|
||||
if [ -n "$HCCHECK" ]; then
|
||||
|
||||
HC=$(yad --form --width=420 --text-align=center --center --title="Build-a-Pi" \
|
||||
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
||||
--text="<b>version $VERSION</b>" \
|
||||
--field="Ham Clock Size":CB "SMALL|LARGE" \
|
||||
--button="Continue":2)
|
||||
HC=$(echo $HC | awk -F "|" '{print $1}')
|
||||
sed -i 's/HAMCLOCK//' $ADDITIONAL
|
||||
echo $HC >> $ADDITIONAL
|
||||
fi
|
||||
|
||||
PATCHECK=$(cat $ADDITIONAL | grep PAT)
|
||||
if [ -n "$PATCHECK" ]; then
|
||||
INFO=$(yad --form --width=420 --text-align=center --center --title="Build-a-Pi" \
|
||||
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
||||
--text="<b>version $VERSION</b>" \
|
||||
--field="Six Character Grid Square" "$GRID" \
|
||||
--field="Winlink Password" \
|
||||
--field="<b>Password is case sensitive</b>":LBL \
|
||||
--button="Continue":2)
|
||||
GRID=$(echo $INFO | awk -F "|" '{print $1}')
|
||||
GRID=${GRID^^}
|
||||
WL2KPASS=$(echo $INFO | awk -F "|" '{print $2}')
|
||||
echo "GRID=$GRID" >> $CONFIG
|
||||
echo "WL2KPASS=\"$WL2KPASS\"" >> $CONFIG
|
||||
|
||||
fi
|
||||
|
||||
#----------------------------------------------------#
|
||||
# UTILITIES MENU
|
||||
#----------------------------------------------------#
|
||||
yad --center --list --checklist --width=600 --height=600 --separator="" \
|
||||
--image $LOGO --column=Check --column=App --column=status --column=description --print-column=2 \
|
||||
--window-icon=$LOGO --image-on-top --text-align=center \
|
||||
--text="<big><big><b>UTILITIES</b></big></big>" --title="Update" \
|
||||
false "DIPOLE" "$DIPOLE" "Dipole Calculator" \
|
||||
false "CALLSIGN" "$CALLSIGN" "Call Sign Lookup Utility" \
|
||||
false "TEMPCONVERT" "$TEMPCONVERT" "Temperature Converter" \
|
||||
false "GPARTED" "$GPARTED" "Disk Utility Application" \
|
||||
false "RTC" "$RTC" "Real Time Clock" \
|
||||
false "SHOWLOG" "$SHOWLOG" "Log File Viewer" \
|
||||
--button="Exit":1 \
|
||||
--button="Install/Update Selected":2 > $UTILITY
|
||||
BUT=$?
|
||||
if [ $BUT = 1 ] || [ $BUT = 252 ];then
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
#check and exit if nothing selected
|
||||
CKBASE=$(cat $BASE)
|
||||
CKFL=$(cat $FLSUITE)
|
||||
CKADD=$(cat $ADDITIONAL)
|
||||
CKUTIL=$(cat $UTILITY)
|
||||
if [ -z "$CKBASE" ] && [ -z "$CKFL" ] && [ -z "$CKADD" ] && [ -z "$CKUTIL" ]; then
|
||||
rm $BASE $FLSUITE $ADDITIONAL $UTILITY > /dev/null 2>&1
|
||||
yad --width=550 --height=250 --text-align=center --center --title="Update" \
|
||||
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
||||
--text="\r\r\r\r<b>Nothing selected for install/update</b>" \
|
||||
--button="CLOSE":1
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
#backup crontab
|
||||
crontab -l > $TEMPCRON
|
||||
echo "@reboot sleep 10 && export DISPLAY=:0 && $MYPATH/.complete" >> $TEMPCRON
|
||||
#update/upgrade the system
|
||||
sudo apt-get update
|
||||
sudo apt-get upgrade
|
||||
sudo apt -y full-upgrade
|
||||
|
||||
#####################################
|
||||
# Install Base Apps
|
||||
#####################################
|
||||
touch $HOME/.config/KM4ACK
|
||||
while read i ; do
|
||||
source $FUNCTIONS/base.function
|
||||
$i
|
||||
done < $BASE
|
||||
|
||||
#####################################
|
||||
# Install FLSUITE
|
||||
#####################################
|
||||
source $FUNCTIONS/flsuite.function
|
||||
#perform memory increase if needed
|
||||
CHECKFL=$(cat $MYPATH/flsuite.txt)
|
||||
if [ -n "$CHECKFL" ]; then
|
||||
FLSTART
|
||||
fi
|
||||
|
||||
touch $HOME/.config/KM4ACK
|
||||
while read i ; do
|
||||
source $FUNCTIONS/flsuite.function
|
||||
$i
|
||||
done < $FLSUITE
|
||||
|
||||
source $FUNCTIONS/flsuite.function
|
||||
if [ -n "$CHECKFL" ]; then
|
||||
FLSTOP
|
||||
fi
|
||||
|
||||
#####################################
|
||||
# Install ADDITIONAL Apps
|
||||
#####################################
|
||||
while read i ; do
|
||||
source $FUNCTIONS/additional.function
|
||||
$i
|
||||
done < $ADDITIONAL
|
||||
|
||||
#####################################
|
||||
# Install KM4ACK Utilites
|
||||
#####################################
|
||||
while read i ; do
|
||||
source $FUNCTIONS/utility.function
|
||||
$i
|
||||
done < $UTILITY
|
||||
|
||||
#####################################
|
||||
# END CLEANUP
|
||||
#####################################
|
||||
#Remove temp files
|
||||
rm $BASE $ADDITIONAL $UTILITY $FLSUITE > /dev/null 2>&1
|
||||
sudo apt -y autoremove
|
||||
|
||||
#restore crontab
|
||||
crontab $TEMPCRON
|
||||
rm $TEMPCRON
|
||||
#reboot when done
|
||||
yad --width=400 --height=200 --title="Reboot" --image $LOGO \
|
||||
--text-align=center --skip-taskbar --image-on-top \
|
||||
--wrap --center --window-icon=$LOGO \
|
||||
--undecorated --text="<big><big><big><b>Update Finished \rReboot Required</b></big></big></big>\r\r" \
|
||||
--button="Reboot Now":0 \
|
||||
--button="Exit":1
|
||||
BUT=$(echo $?)
|
||||
|
||||
if [ $BUT = 0 ]; then
|
||||
echo rebooting
|
||||
sudo reboot
|
||||
elif [ $BUT = 1 ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Ładowanie…
Reference in New Issue