kopia lustrzana https://github.com/km4ack/pi-build
702 wiersze
20 KiB
Bash
702 wiersze
20 KiB
Bash
#!/bin/bash
|
|
|
|
#script to update build a pi script
|
|
#20190313 km4ack
|
|
#SIDENOTE: This was written as the Covid-19 outbreak was occuring
|
|
|
|
WHO=$(whoami)
|
|
|
|
#verify not run as root
|
|
if [ $WHO = "root" ]
|
|
then
|
|
echo "no need to run with sudo"
|
|
exit 1
|
|
fi
|
|
|
|
#verify we have a Downloads directory
|
|
mkdir -p $HOME/Downloads
|
|
|
|
clear;echo;echo
|
|
|
|
echo "Build-a-Pi update tool by KM4ACK"
|
|
echo;echo
|
|
cat <<EOF
|
|
This update tool will update the apps that were
|
|
orignally compiled from source as well as a few
|
|
apps like JS8Call & WSJTX that cannot be updated
|
|
with a simple apt-get upgrade command.
|
|
The entire process can take over an hour.
|
|
Several apps (FLDIGI Suite, hamlib, direwolf)
|
|
will be compiled from source.
|
|
Press CRTL+C to exit or
|
|
EOF
|
|
read -n 1 -s -r -p "Press any key to continue"
|
|
#----------------------------------------------------#
|
|
# JS8Call/WSJTX
|
|
#----------------------------------------------------#
|
|
clear;echo;echo
|
|
cat <<EOF
|
|
Currently, it isn't possible for any script
|
|
to detect if JS8Call or WSJTX needs to be
|
|
updated. If JS8Call or WSJTX is out of date
|
|
the script can update both apps for you. It
|
|
will not hurt if you update and the latest
|
|
version is already installed.
|
|
|
|
EOF
|
|
read -p "Would you like to update JS8Call? y/n " JS8
|
|
read -p "Would you like to update WSJTX? y/n " WSJ
|
|
|
|
if [ $JS8 = 'y' ] || [ $JS8 = 'Y' ];then
|
|
echo "removing old JS8Call"
|
|
sudo apt-get remove -y js8call;echo
|
|
echo "updating JS8Call "
|
|
sleep 1
|
|
cd $HOME/Downloads
|
|
JS8LATE=$(curl -s http://files.js8call.com/latest.html | grep armhf | awk '{ print $2 }' | sed 's/href=//' | sed 's/"//g')
|
|
JS8PKG=$(curl -s http://files.js8call.com/latest.html | grep armhf | awk '{ print $2 }' | sed 's/\///g' | sed 's/href="http:files.js8call.com[0-9].[0-9].[0-9]//' | sed 's/"//')
|
|
wget $JS8LATE
|
|
sudo dpkg -i $JS8PKG
|
|
sudo apt-get --fix-broken -y install
|
|
sudo dpkg -i $JS8PKG
|
|
fi
|
|
|
|
if [ $WSJ = 'y' ] || [ $WSJ = 'Y' ];then
|
|
echo "removing old WSJTX"
|
|
sudo apt-get remove -y wsjtx
|
|
echo "installing new WSJTX"
|
|
WSPKG=$(curl -s https://physics.princeton.edu/pulsar/k1jt/wsjtx.html | grep armhf.deb | sed 's/^.*wsjtx/wsjtx/' | sed 's/deb.*$/deb/')
|
|
cd $HOME/Downloads
|
|
wget https://physics.princeton.edu/pulsar/k1jt/$WSPKG
|
|
sudo dpkg -i $WSPKG
|
|
sleep 1
|
|
fi
|
|
|
|
clear;echo;echo
|
|
cat <<EOF
|
|
You should run an update and upgrade
|
|
before proceeding. If you have not run
|
|
both of these commands today, we can
|
|
do it now. Would you like to update
|
|
and upgrade now? y/n
|
|
EOF
|
|
read ANS
|
|
if [ $ANS = 'y' ] || [ $ANS = 'Y' ]
|
|
then
|
|
sudo apt-get -y update
|
|
sudo apt-get -y upgrade
|
|
fi
|
|
|
|
#-------------------------------------------------------------------------------------#
|
|
#This section compares what is installed against to latest version available"
|
|
#-------------------------------------------------------------------------------------#
|
|
clear;echo;echo
|
|
echo "Standby while we check for updates"
|
|
#----------------------------------------------------#
|
|
# RIG CONTROL - HAMLIB
|
|
#----------------------------------------------------#
|
|
echo "Checking Rig Contol"
|
|
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 already latest version"
|
|
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 already 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 already 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 already 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 already 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 already 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 already 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 already 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 already latest version"
|
|
fi
|
|
fi
|
|
#----------------------------------------------------#
|
|
# Pat Menu
|
|
#----------------------------------------------------#
|
|
echo "Checking Pat Menu"
|
|
if [ ! -d $HOME/patmenu ]; then
|
|
PATMENU="Not Installed"
|
|
else
|
|
cd $HOME/patmenu/
|
|
wget -O $HOME/patmenu/latest https://raw.githubusercontent.com/km4ack/patmenu/master/release > /dev/null 2>&1
|
|
LATEST=$(cat $HOME/patmenu/latest | grep '^release' | sed 's/release=//')
|
|
CURRENT=$(cat $HOME/patmenu/release | grep '^release' | sed 's/release=//')
|
|
rm $HOME/patmenu/latest
|
|
if (( $(echo "$LATEST $CURRENT" | awk '{print ($1 > $2)}') ))
|
|
then
|
|
PATMENU="NEEDS-UPDATE"
|
|
else
|
|
PATMENU="is already latest version"
|
|
fi
|
|
fi
|
|
|
|
#----------------------------------------------------#
|
|
# Hot Spot Tools
|
|
#----------------------------------------------------#
|
|
if [ ! -d $HOME/hotspot-tools ]; then
|
|
HSTOOLS="Not Installed"
|
|
else
|
|
CURRENT=$(cat $HOME/hotspot-tools/changelog | grep version= | sed 's/version=//')
|
|
LATEST=$(curl -s https://raw.githubusercontent.com/km4ack/hotspot-tools/master/changelog | grep version= | sed 's/version=//')
|
|
if (( $(echo "$LATEST $CURRENT" | awk '{print ($1 > $2)}') ))
|
|
then
|
|
HSTOOLS="NEEDS-UPDATE"
|
|
else
|
|
HSTOOLS="is already 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 already latest version"
|
|
fi
|
|
fi
|
|
#----------------------------------------------------#
|
|
# Grid Tracker
|
|
#----------------------------------------------------#
|
|
echo "Checking Grid Tracker"
|
|
if [ ! -d $HOME/GridTracker ]; then
|
|
GRIDTRACK="Not Installed"
|
|
else
|
|
GRIDDLL=$(curl -s https://tagloomis.com/downloads/ | grep Arm | head -1 | sed 's/<p><a\ href="//' | sed 's/?.*$//')
|
|
CURRENT=$(cat $HOME/GridTracker/package.nw/lib/gt.js | grep gtVersion | head -1 | sed 's/var\ gtVersion\ =\ //' | sed 's/;//')
|
|
LATEST=$(echo $GRIDDLL | sed 's/.*Arm-//' | sed 's/.tar.gz//' | sed 's/\.//g')
|
|
if (( $(echo "$LATEST $CURRENT" | awk '{print ($1 > $2)}') ))
|
|
then
|
|
GRIDTRACK=NEEDS-UPDATE
|
|
else
|
|
GRIDTRACK="is already latest version"
|
|
fi
|
|
fi
|
|
#----------------------------------------------------#
|
|
# END VERSION CHECK
|
|
# Print Results
|
|
#----------------------------------------------------#
|
|
#Print results for user
|
|
clear;echo;echo
|
|
echo "Results of Test"
|
|
echo "---------------"
|
|
echo "Rig Control "$RIG
|
|
echo "FLDIGI "$FLDIGI
|
|
echo "FLRIG "$FLRIG
|
|
echo "FLAMP" $FLAMP
|
|
echo "FLMSG "$FLMSG
|
|
echo "FLNET "$FLNET
|
|
echo "PAT Winlink "$PAT
|
|
echo "Chirp "$CHIRP
|
|
echo "Direwolf "$DIRE
|
|
echo "Pat Menu "$PATMENU
|
|
echo "GARIM "$GARIM
|
|
echo "Hotspot Tools "$HSTOOLS
|
|
echo "Grid Tracker "$GRIDTRACK
|
|
|
|
#----------------------------------------------------#
|
|
# Update Function
|
|
#----------------------------------------------------#
|
|
UPDATE() {
|
|
#Section installs/updates fldigi depends.
|
|
if [ $FLDIGI = "NEEDS-UPDATE" > /dev/null 2>&1 ] || [ $FLRIG = "NEEDS-UPDATE" > /dev/null 2>&1 ] || [ $FLAMP = "NEEDS-UPDATE" > /dev/null 2>&1 ] ||
|
|
[ $FLMSG = "NEEDS-UPDATE" > /dev/null 2>&1 ] || [ $FLNET = "NEEDS-UPDATE" > /dev/null 2>&1 ]
|
|
then
|
|
#install needed depends
|
|
sudo apt-get install -y libfltk1.3-dev libjpeg9-dev libxft-dev libxinerama-dev libxcursor-dev libsndfile1-dev libsamplerate0-dev portaudio19-dev libpulse-dev libusb-1.0-0-dev texinfo
|
|
|
|
#find how much memory we are working with
|
|
FREEMEM=$(free -m | grep Mem: | awk '{ print $2 }')
|
|
echo $FREEMEM
|
|
|
|
#increase swap file if less than 3G memory
|
|
if [ $FREEMEM -lt 3000 ]
|
|
then
|
|
echo "Increasing Swap size for build"
|
|
#increase swap size
|
|
sudo sed -i 's/#CONF_SWAPFILE=\/var\/swap/CONF_SWAPFILE=\/var\/swap/' /etc/dphys-swapfile
|
|
sudo sed -i 's/CONF_SWAPSIZE=100/CONF_SWAPSIZE=1024/' /etc/dphys-swapfile
|
|
sudo /etc/init.d/dphys-swapfile restart
|
|
sleep 10
|
|
fi
|
|
|
|
#----------------------------------------------------#
|
|
# FLXMLRPC
|
|
#----------------------------------------------------#
|
|
|
|
#check if flxmlrpc library is installed
|
|
FLX=$(ldconfig -p | grep flxmlrpc)
|
|
|
|
if [ -z "$FLX" ]
|
|
then
|
|
#determine latest FLXMLRPC & download
|
|
FLXM=$(curl -s http://www.w1hkj.com/files/flxmlrpc/ | grep .tar.gz | sed 's/<li><a\ href="//' | sed 's/">\ flxmlrpc.*$//')
|
|
XMPKG=$( echo $FLXM | sed 's/.tar.gz//')
|
|
cd $HOME/Downloads
|
|
wget http://www.w1hkj.com/files/flxmlrpc/$FLXM
|
|
tar -zxvf $FLXM
|
|
rm *.gz
|
|
|
|
#build FLXMLRPC
|
|
cd $XMPKG
|
|
./configure --prefix=/usr/local --enable-static
|
|
make
|
|
sudo make install
|
|
sudo ldconfig
|
|
fi
|
|
fi
|
|
#----------------------------------------------------#
|
|
# RIG CONTROL
|
|
#----------------------------------------------------#
|
|
if [ $RIG = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
LATERIG=$(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}')
|
|
DLRIG=$(curl -s https://sourceforge.net/projects/hamlib/files/hamlib/$LATERIG/ | grep .tar.gz |head -1)
|
|
CURRIG=$(echo $DLRIG | sed 's/^.*hamlib/hamlib/' | sed 's/".*$//')
|
|
cd $HOME/Downloads
|
|
wget https://sourceforge.net/projects/hamlib/files/hamlib/$LATERIG/$CURRIG
|
|
DIR=$(echo $CURRIG | sed 's/.tar.gz*$//')
|
|
tar -xzvf $CURRIG
|
|
cd $DIR
|
|
./configure
|
|
make
|
|
sudo make install
|
|
sudo ldconfig
|
|
fi
|
|
#----------------------------------------------------#
|
|
# FLDIGI
|
|
#----------------------------------------------------#
|
|
if [ $FLDIGI = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
#Determine latest FLDIGI
|
|
FLTAR=$(curl -s http://www.w1hkj.com/files/fldigi/ | grep .tar.gz | sed 's/<li><a\ href="//' | sed 's/">\ fldigi.*$//')
|
|
FLPKG=$(echo $FLTAR | sed 's/.tar.gz//')
|
|
|
|
#Download latest FLDIGI tar file
|
|
cd $HOME/Downloads
|
|
wget http://www.w1hkj.com/files/fldigi/$FLTAR
|
|
tar -zxvf $FLTAR
|
|
rm *.gz
|
|
|
|
|
|
#build FLDIGI
|
|
cd $FLPKG
|
|
./configure --prefix=/usr/local --enable-static
|
|
make
|
|
sudo make install
|
|
sudo ldconfig
|
|
fi
|
|
#----------------------------------------------------#
|
|
# FLRIG
|
|
#----------------------------------------------------#
|
|
if [ $FLRIG = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
#Determine latest FLRIG
|
|
RIGTAR=$(curl -s http://www.w1hkj.com/files/flrig/ | grep .tar.gz | sed 's/<li><a\ href="//' | sed 's/">\ flrig.*$//')
|
|
RIGPKG=$(echo $RIGTAR | sed 's/.tar.gz//')
|
|
|
|
#Download latest FLRIG
|
|
cd $HOME/Downloads
|
|
wget http://www.w1hkj.com/files/flrig/$RIGTAR
|
|
tar -zxvf $RIGTAR
|
|
rm *.gz
|
|
|
|
#Build FLRIG
|
|
cd $RIGPKG
|
|
./configure --prefix=/usr/local --enable-static
|
|
make
|
|
sudo make install
|
|
sudo ldconfig
|
|
fi
|
|
#----------------------------------------------------#
|
|
# FLAMP
|
|
#----------------------------------------------------#
|
|
if [ $FLAMP = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
#determine latest FLAMP
|
|
AMPTAR=$(curl -s http://www.w1hkj.com/files/flamp/ | grep .tar.gz | sed 's/<li><a\ href="//' | sed 's/">\ flamp.*$//')
|
|
AMPPKG=$(echo $AMPTAR | sed 's/.tar.gz//')
|
|
|
|
#download FLAMP
|
|
cd $HOME/Downloads
|
|
wget http://www.w1hkj.com/files/flamp/$AMPTAR
|
|
tar -zxvf $AMPTAR
|
|
rm *.gz
|
|
|
|
#build FLAMP
|
|
cd $AMPPKG
|
|
./configure --prefix=/usr/local --enable-static
|
|
make
|
|
sudo make install
|
|
sudo ldconfig
|
|
fi
|
|
#----------------------------------------------------#
|
|
# FLMSG
|
|
#----------------------------------------------------#
|
|
if [ $FLMSG = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
#Determine latest FLMSG
|
|
MSGTAR=$(curl -s http://www.w1hkj.com/files/flmsg/ | grep .tar.gz | sed 's/<li><a\ href="//' | sed 's/">\ flmsg.*$//')
|
|
MSGPKG=$(echo $MSGTAR | sed 's/.tar.gz//')
|
|
|
|
#download FLMSG
|
|
cd $HOME/Downloads
|
|
wget http://www.w1hkj.com/files/flmsg/$MSGTAR
|
|
tar -zxvf $MSGTAR
|
|
rm *.gz
|
|
|
|
#Build FLMSG
|
|
cd $MSGPKG
|
|
./configure --prefix=/usr/local --enable-static
|
|
make
|
|
sudo make install
|
|
sudo ldconfig
|
|
fi
|
|
#----------------------------------------------------#
|
|
# FLNET
|
|
#----------------------------------------------------#
|
|
if [ $FLNET = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
#determine lastest FLNET
|
|
NETTAR=$(curl -s http://www.w1hkj.com/files/flnet/ | grep .tar.gz | sed 's/<li><a\ href="//' | sed 's/">\ flnet.*$//')
|
|
NETPKG=$(echo $NETTAR | sed 's/.tar.gz//')
|
|
|
|
#download FLNET
|
|
cd $HOME/Downloads
|
|
wget http://www.w1hkj.com/files/flnet/$NETTAR
|
|
tar -zxvf $NETTAR
|
|
rm *.gz
|
|
|
|
#build FLNET
|
|
cd $NETPKG
|
|
./configure --prefix=/usr/local --enable-static
|
|
make
|
|
sudo make install
|
|
sudo ldconfig
|
|
fi
|
|
|
|
#reset swap size to default
|
|
if [ $FREEMEM -lt 3000 ] > /dev/null 2>&1
|
|
then
|
|
echo "Resetting swap size to default"
|
|
#reset swap size
|
|
sudo sed -i 's/CONF_SWAPFILE=\/var\/swap/#CONF_SWAPFILE=\/var\/swap/' /etc/dphys-swapfile
|
|
sudo sed -i 's/CONF_SWAPSIZE=1024/CONF_SWAPSIZE=100/' /etc/dphys-swapfile
|
|
sudo /etc/init.d/dphys-swapfile restart
|
|
fi
|
|
#----------------------------------------------------#
|
|
# Pat WINLINK
|
|
#----------------------------------------------------#
|
|
if [ $PAT = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
echo "updating Pat Winlink"
|
|
sleep 1
|
|
sudo systemctl stop pat@$WHO
|
|
sudo apt-get remove -y pat
|
|
cd $HOME/Downloads
|
|
PAT=$(curl -s https://github.com/la5nta/pat/releases/ | grep linux_armhf.deb | head -1 | sed 's/<li><a\ href="//' | sed 's/".*$//')
|
|
PAT1=$(echo $PAT | sed 's/^.*v[0-9].[0-9].[0-9]\///')
|
|
wget $PAT
|
|
sudo dpkg -i $PAT1
|
|
sleep 2
|
|
sudo systemctl start pat@$WHO > /dev/null 2>&1
|
|
sudo systemctl daemon-reload
|
|
echo "Pat Winlink Updated"
|
|
sleep 1
|
|
fi
|
|
#----------------------------------------------------#
|
|
# CHIRP
|
|
#----------------------------------------------------#
|
|
if [ $CHIRP = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
echo "updating CHIRP"
|
|
sleep 1
|
|
cd $HOME/Downloads
|
|
wget https://trac.chirp.danplanet.com/chirp_daily/LATEST/
|
|
CHIRPBUILD=$(cat index.html | grep .tar.gz | grep chirp-daily- | awk '{ print $6 }' | sed 's/.*"//' | sed 's/>//' | sed 's/[<].*$//')
|
|
sudo apt-get -y install python-gtk2 python-serial python-libxml2
|
|
mkdir $HOME/chirp
|
|
cd $HOME/chirp
|
|
wget https://trac.chirp.danplanet.com/chirp_daily/LATEST/$CHIRPBUILD
|
|
tar -xzf $CHIRPBUILD
|
|
CHIRPDIR=$(echo $CHIRPBUILD | sed 's/[.].*$//')
|
|
cd $CHIRPDIR
|
|
sudo python setup.py install
|
|
echo;echo;echo "Chirp has been updated"
|
|
sleep 1
|
|
fi
|
|
#----------------------------------------------------#
|
|
# DIREWOLF
|
|
#----------------------------------------------------#
|
|
if [ $DIRE = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
echo "updating direwolf"
|
|
sleep 1
|
|
cd $HOME/direwolf
|
|
git pull
|
|
make
|
|
sudo make install
|
|
fi
|
|
#----------------------------------------------------#
|
|
# PAT Menu
|
|
#----------------------------------------------------#
|
|
if [ $PATMENU = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
echo "updating Pat Menu"
|
|
sleep 1
|
|
cd $HOME/Downloads
|
|
cp $HOME/patmenu/config $HOME/Downloads/
|
|
git clone https://github.com/km4ack/patmenu.git
|
|
cp $HOME/Downloads/patmenu/* $HOME/patmenu/
|
|
mv $HOME/Downloads/config $HOME/patmenu/
|
|
rm -rf $HOME/Downloads/patmenu
|
|
chmod +x $HOME/patmenu/setup
|
|
$HOME/patmenu/./setup
|
|
fi
|
|
|
|
#----------------------------------------------------#
|
|
# GARIM
|
|
#----------------------------------------------------#
|
|
if [ $GARIM = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
echo "updating GARIM"
|
|
sleep 1
|
|
GPKG=$(curl -s https://www.whitemesa.net/garim/src/ | grep tar.gz | tail -1 | sed 's/^.*garim/garim/' | sed 's/tar.gz.*$/tar.gz/')
|
|
cd $HOME/Downloads
|
|
wget https://www.whitemesa.net/garim/src/$GPKG
|
|
tar -xzvf $GPKG
|
|
DIR=$(echo $GPKG | sed 's/.tar.gz//')
|
|
cd $DIR
|
|
./configure
|
|
make
|
|
sudo make install
|
|
fi
|
|
#----------------------------------------------------#
|
|
# Hotspot Tools
|
|
#----------------------------------------------------#
|
|
if [ $HSTOOLS = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
echo "updating Hotspot Tools"
|
|
sleep 1
|
|
cd $HOME/hotspot-tools
|
|
git fetch --all
|
|
git reset --hard origin/master
|
|
bash setup
|
|
fi
|
|
#----------------------------------------------------#
|
|
# Grid Tracker
|
|
#----------------------------------------------------#
|
|
if [ $GRIDTRACK = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
rm -rf $HOME/GridTracker
|
|
cd $HOME
|
|
sudo apt-get install -y libgconf-2-4
|
|
GRIDDLL=$(curl -s https://tagloomis.com/downloads/ | grep Arm | head -1 | sed 's/<p><a\ href="//' | sed 's/?.*$//')
|
|
wget $GRIDDLL
|
|
GRIDTAR=$(echo $GRIDDLL | sed 's/.*\///g')
|
|
tar -xzvf $GRIDTAR
|
|
rm *.gz
|
|
fi
|
|
}
|
|
|
|
|
|
echo;echo
|
|
|
|
if [ $FLDIGI = "NEEDS-UPDATE" ] > /dev/null 2>&1 || [ $FLRIG = "NEEDS-UPDATE" ] > /dev/null 2>&1 ||
|
|
[ $FLAMP = "NEEDS-UPDATE" ] > /dev/null 2>&1 || [ $FLMSG = "NEEDS-UPDATE" ] > /dev/null 2>&1 ||
|
|
[ $FLNET = "NEEDS-UPDATE" ] > /dev/null 2>&1 || [ $DIRE = "NEEDS-UPDATE" ] > /dev/null 2>&1 ||
|
|
[ $CHIRP = "NEEDS-UPDATE" ] > /dev/null 2>&1 || [ $FLNET = "NEEDS-UPDATE" ] > /dev/null 2>&1 ||
|
|
[ $PAT = "NEEDS-UPDATE" ] > /dev/null 2>&1 || [ $RIG = "NEEDS-UPDATE" ] > /dev/null 2>&1 ||
|
|
[ $PATMENU = "NEEDS-UPDATE" ] > /dev/null 2>&1 || [ $GARIM = "NEEDS-UPDATE" ] > /dev/null 2>&1 ||
|
|
[ $HSTOOLS = "NEEDS-UPDATE" ] > /dev/null 2>&1 || [ $GRIDTRACK = "NEEDS-UPDATE" ] > /dev/null 2>&1
|
|
then
|
|
read -p "Would you like to update all apps that need it now? y/n " ANS
|
|
if [ $ANS = 'y' ] || [ $ANS = 'Y' ]
|
|
then
|
|
UPDATE
|
|
else
|
|
exit 0
|
|
fi
|
|
echo;echo;echo "rebooting in 5 seconds"
|
|
sleep 5
|
|
sudo reboot
|
|
else
|
|
echo "Everything is currently up to date"
|
|
exit 0
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|