Recent version is up2bpq-stable
https://ham.packet-radio.net/packet/up2bpq/up2bpq-stable
I have called the update script Up2bpq-stable.. Why, it`s using the stable version of BPQ32.
Some of the changelog
# 01-12-2019
# Add setcap to the linbpq.start file.
# After update change the linbpq.start file “setcap command and start line”.
# Add -q option to wget to suspres the output.
# Add hosttype check to download the right linbpq or pilinbpq.
# Make it possible to run the script from everywhere in het system (source ~/.bashrc).
# Add the bin directory in home dir ~/bin.
# Shorten the directory paths, adding ~/ in front of it.
# The script is using the Stable release.
You can run the script via a crontab.
crontab -e
To run /home/pd9q/up2bpq-stable five minutes after midnight, every day, enter:
5 0 * * * /home/pd9q/bin/up2bpq-stable
#!/bin/bash
# Up2bpq Version v2.0.2 12-01-2019 by Niels PD9Q
# Fist Version V1 greated on 10-02-2019
# Check version numbers of Pilinbpq and Linbpq against version numbers on the local machine.
# Hold the timestamp. Add version number and timestamp to the file and copy to archive.
# Copy the new version to the Linbpq directory and rerun Linbpq with the new version.
#
# 01-12-2019
# Add setcap to the linbpq.start file.
# After update change the linbpq.start file "setcap command and start line".
# Add -q option to wget to suspres the output.
# Add hosttype check to download the right linbpq or pilinbpq.
# Make it possible to run the script from everywhere in het system (source ~/.bashrc).
# Add the bin directory in home dir ~/bin.
# Shorten the directory paths, adding ~/ in front of it.
# The script is using the Stable release.
#
# 10-11-2019
# Add first check, to do something about the errors.
# Add email option, now you get the version number en changelog mailed to you.
# Try to meet the posix standards.
#
# Meet the standard of posix
set -o posix
# Enable debugging
set -xv
#
#
# Global variables.
# Please change the variables to your own needs.
user=$USER # This is the user who ownes/runs Linbpq
mail=pd9q-(@)-packet-radio.net # Set your e-mail adres
home=~/linbpq # This is the main directory of linbpq (home/USER/linbpq)
work=~/linbpq/up2bpq # This is the working directory for up2bpq
changelog=~/linbpq/up2bpq/changelog # This is the changelog directory
archive=~/linbpq/up2bpq/archive # This is the archive directory to save older versions of pilinbpq/linbpq
logfile=~/linbpq/up2bpq/log-up2bpq.txt # Logfile (not in use yet)
#
# Start of the main script
# Check if required directory exist
if [ ! -d "$home" ]; then
mkdir -p -v "$home"
fi
#
if [ ! -d "$work" ]; then
mkdir -p -v "$work"
fi
#
if [ ! -d "$archive" ]; then
mkdir -p -v "$archive"
fi
#
if [ ! -d "$changelog" ]; then
mkdir -p -v "$changelog"
fi
if [ ! -d ~/bin ]; then
mkdir -p -v ~/bin
fi
#
# Copy the script to the bin directory
if [ ! -f ~/bin/up2bpq-stable ]; then
cp -p up2bpq-stable ~/bin
fi
# Export PATH and source bashrc
# Log out and login again and you can run the script from everywhere in the system
export PATH=~/bin:$PATH
chmod a+x ~/.bashrc
PS1='$ '
source ~/.bashrc
#
# Check hosttype
if [[ $HOSTTYPE == *86* ]];
then
export LINBPQ=linbpq;
else
export LINBPQ=pilinbpq;
fi
#
# Fist check if linbpq exist
if [ ! -f "$home"/linbpq_* ]; then
nowdat=$(date "+%Y-%m-%d")
wget -q -N http://www.cantab.net/users/john.wiseman/Downloads/$LINBPQ -O "$home"/linbpq
chmod +x "$home"/linbpq
oldlin=$("$home"/linbpq -V | grep Version | cut -d' ' -f7)
cp -p "$home"/linbpq "$home"/linbpq_"$oldlin"_"$nowdat" ; rm -f "$home"/linbpq
echo "# Pilinbpq Start File v1.1" > "$home"/linbpq.start
echo 'sudo setcap "CAP_NET_ADMIN=ep CAP_NET_RAW=ep CAP_NET_BIND_SERVICE=ep"' linbpq_"$oldlin"_"$nowdat" >> "$home"/linbpq.start
echo "cd "$home"" >> "$home"/linbpq.start
echo "sudo -u $user ./linbpq_"$oldlin"_"$nowdat"" >> "$home"/linbpq.start
chmod +x "$home"/linbpq.start
fi
# Find the recent version number (linbpq_6.0.19.1_2019-10-5?)
find=$(ls "$home"/linbpq_*)
# Getting the files from BPQ32 the stable release
wget -q -N http://www.cantab.net/users/john.wiseman/Downloads/$LINBPQ -O "$work"/linbpq
if [ $? -ne 0 ]; then
echo "Download FAILED...Try again later"
exit 1
fi
# Chmod the file
chmod +x "$work"/linbpq
# Compare the version numbers
oldvertxt=$($find -V | grep Version | cut -d' ' -f7)
newvertxt=$("$work"/linbpq -V | grep Version | cut -d' ' -f7)
# Convert to numbers for comparision
#
oldver=$(echo "$oldvertxt" | sed s'/[.]//g') newver=$(echo "$newvertxt" | sed s'/[.]//g')
if [ "$newver" -le "$oldver" ]; then
echo Version "$oldvertxt" is current. No update available
echo Nothing to do, so sit down and relax
rm -f "$work"/linbpq
exit 0 &>/dev/null
else
echo Version "$newvertxt" available. Upgrading now
now=$(date "+%Y-%m-%d")
cp -p "$work"/linbpq "$home"/linbpq_"$newvertxt"_"$now"
cp -p "$work"/linbpq "$archive"/linbpq_"$newvertxt"_"$now"
sed -i "s,linbpq_.*$,linbpq_"$newvertxt"_"$now"," "$home"/linbpq.start
# Email the new version number and the changlog
wget -q https://www.cantab.net/users/john.wiseman/Documents/NodeChangeLog.html -P "$changelog" &>/dev/null
sed -e '1,20d' -e 's/<[^>]*>//g' "$changelog"/NodeChangeLog.html > "$changelog"/changelog.txt
sed -e "3s/Version/Version-new/" -n -e '/Version-new/,/Version/ p' "$changelog"/changelog.txt | mail -s "Changelog of BPQ32" "$mail"
echo "Linbpq is replaced by "$newvertxt" old version was "$oldvertxt"" | mail -s "Update BPQ32 new version" "$mail"
rm -f "$changelog"/NodeChangeLog.* ; rm -f "$changelog"/changelog.txt
# No reason to exist any more.
rm -f "$home"/linbpq_"$oldvertxt"_*
rm -f "$work"/linbpq
sleep 5
# Change to your own needs
#sudo systemctl restart linbpq
#sudo reboot
#sudo shutdown -r now
fi
exit 0
