Last active
August 29, 2015 14:04
-
-
Save dave-maldonado/4f09d998060b9c0f1dd7 to your computer and use it in GitHub Desktop.
An upgrade script for the FreePBX distro
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# bash script to upgrade FreePBX distro | |
# Dave Maldonado @ TeleVoIPs | |
FINAL_VER="5.211.65-15" # change and add case to main logic to add new version | |
DOWNLOAD_URL="http://upgrades.freepbxdistro.org/stable" | |
DONE="false" | |
# PROCEDURE: find current version of FreePBX distro | |
find_version () { | |
if [ -f "/etc/schmooze/pbx-version" ]; then | |
CURRENT_VER=$(cat /etc/schmooze/pbx-version) | |
else | |
CURRENT_VER=$(cat /etc/asterisk/freepbxdistro-version) | |
fi | |
} | |
# PROCEDURE: upgrade to next version | |
# PARAMETERS: $1 = series number, i.e. '5.211.65' | |
# and $2 = specific upgrade name, i.e. '5.211.65-15' | |
upgrade_version () { | |
echo "Downloading $2" | |
wget $DOWNLOAD_URL/$1/upgrade-$2.sh | |
echo "Setting permissions for the script." | |
chmod +x upgrade-$2.sh | |
echo "Upgrading to $2..." | |
./upgrade-$2.sh | |
echo "Upgrade complete!" | |
} | |
# exit script if already on latest version | |
find_version | |
if [ "$CURRENT_VER" = "$FINAL_VER" ]; then | |
echo "You are on $CURRENT_VER, the latest version in this script." | |
exit 0 | |
fi | |
echo "You are currently on $CURRENT_VER." | |
echo "Get a cup of coffee, this might take a while..." | |
sleep 5 | |
# create temp directory if needed | |
if [ ! -d /tmp/freepbx-updates ]; then | |
mkdir /tmp/freepbx-updates | |
echo "Creating /tmp/freepbx-updates" | |
fi | |
# switch to temp directory | |
cd /tmp/freepbx-updates | |
echo "Switching to /tmp/freepbx-updates" | |
sleep 5 | |
# main logic: apply upgrade_version for each update until at FINAL_VER | |
while [ "$DONE" != "true" ] | |
do | |
case $CURRENT_VER in | |
1.1100.211.63-1 ) | |
upgrade_version 1.1100.211.63 1.1100.211.63-2 | |
;; | |
1.1100.211.63-2 ) | |
upgrade_version 1.1100.211.63 1.1100.211.63-3 | |
;; | |
1.1100.211.63-3 ) | |
upgrade_version 1.1100.211.63 1.1100.211.63-4 | |
;; | |
1.1100.211.63-4 ) | |
upgrade_version 1.1100.211.63 1.1100.211.63-5 | |
;; | |
1.1100.211.63-5 ) | |
upgrade_version 1.1100.211.63 3.211.63-1 | |
;; | |
2.210.62-1 ) | |
upgrade_version 2.210.62 2.210.62-2 | |
;; | |
2.210.62-2 ) | |
upgrade_version 2.210.62 2.210.62-3 | |
;; | |
2.210.62-3 ) | |
upgrade_version 2.210.62 2.210.62-4 | |
;; | |
2.210.62-4 ) | |
upgrade_version 2.210.62 2.210.62-5 | |
;; | |
2.210.62-5 ) | |
upgrade_version 2.210.62 2.210.62-6 | |
;; | |
2.210.62-6 ) | |
upgrade_version 2.210.62 2.210.62-7 | |
;; | |
2.210.62-7 ) | |
upgrade_version 2.210.62 2.210.62-100 | |
;; | |
3.211.63-1 ) | |
upgrade_version 3.211.63 3.211.63-2 | |
;; | |
3.211.63-2 ) | |
upgrade_version 3.211.63 3.211.63-3 | |
;; | |
3.211.63-3 ) | |
upgrade_version 3.211.63 3.211.63-4 | |
;; | |
3.211.63-4 ) | |
upgrade_version 3.211.63 3.211.63-5 | |
;; | |
3.211.63-5 ) | |
upgrade_version 3.211.63 3.211.63-6 | |
;; | |
3.211.63-6 ) | |
upgrade_version 3.211.63 3.211.63-7 | |
;; | |
3.211.63-7 ) | |
upgrade_version 3.211.63 3.211.63-8 | |
;; | |
3.211.63-8 ) | |
upgrade_version 3.211.63 3.211.63-9 | |
;; | |
3.211.63-9 ) | |
upgrade_version 3.211.63 3.211.63-10 | |
;; | |
3.211.63-10 ) | |
upgrade_version 4.211.64 3.211.63-to-4.211.64-1 | |
;; | |
4.211.64-1 ) | |
upgrade_version 4.211.64 4.211.64-2 | |
;; | |
4.211.64-2 ) | |
upgrade_version 4.211.64 4.211.64-3 | |
;; | |
4.211.64-3 ) | |
upgrade_version 4.211.64 4.211.64-4 | |
;; | |
4.211.64-4 ) | |
upgrade_version 4.211.64 4.211.64-5 | |
;; | |
4.211.64-5 ) | |
upgrade_version 4.211.64 4.211.64-6 | |
;; | |
4.211.64-6 ) | |
upgrade_version 4.211.64 4.211.64-7 | |
;; | |
4.211.64-7 ) | |
upgrade_version 4.211.64 4.211.64-8 | |
;; | |
4.211.64-8 ) | |
upgrade_version 4.211.64 4.211.64-9 | |
;; | |
4.211.64-9 ) | |
upgrade_version 4.211.64 4.211.64-10 | |
;; | |
4.211.64-10 ) | |
upgrade_version 5.211.65 4.211.64-to-5.211.65-1 | |
;; | |
5.211.65-1 ) | |
upgrade_version 5.211.65 5.211.65-2 | |
;; | |
5.211.65-2 ) | |
upgrade_version 5.211.65 5.211.65-3 | |
;; | |
5.211.65-3 ) | |
upgrade_version 5.211.65 5.211.65-4 | |
;; | |
5.211.65-4 ) | |
upgrade_version 5.211.65 5.211.65-5 | |
;; | |
5.211.65-5 ) | |
upgrade_version 5.211.65 5.211.65-6 | |
;; | |
5.211.65-6 ) | |
upgrade_version 5.211.65 5.211.65-7 | |
;; | |
5.211.65-7 ) | |
upgrade_version 5.211.65 5.211.65-8 | |
;; | |
5.211.65-8 ) | |
upgrade_version 5.211.65 5.211.65-9 | |
;; | |
5.211.65-9 ) | |
upgrade_version 5.211.65 5.211.65-10 | |
;; | |
5.211.65-10 ) | |
upgrade_version 5.211.65 5.211.65-11 | |
;; | |
5.211.65-11 ) | |
upgrade_version 5.211.65 5.211.65-12 | |
;; | |
5.211.65-12 ) | |
upgrade_version 5.211.65 5.211.65-13 | |
;; | |
5.211.65-13 ) | |
upgrade_version 5.211.65 5.211.65-14 | |
;; | |
5.211.65-14 ) | |
upgrade_version 5.211.65 5.211.65-15 | |
;; | |
5.211.65-15 ) | |
upgrade_version 5.211.65 5.211.65-16 | |
;; | |
5.211.65-16 ) | |
upgrade_version 5.211.65 5.211.65-17 | |
;; | |
5.211.65-17 ) | |
upgrade_version 5.211.65 5.211.65-18 | |
;; | |
5.211.65-18 ) | |
upgrade_version 5.211.65 5.211.65-19 | |
;; | |
5.211.65-19 ) | |
upgrade_version 5.211.65 5.211.65-20 | |
;; | |
5.211.65-20 ) | |
DONE="true" | |
;; | |
* ) | |
echo "Uh-oh, something went wrong..." | |
echo "Possible issues include:" | |
echo "1. upgrading a *really* early version of FreePBX" | |
echo "2. upgrading a new version of FreePBX not in this script" | |
echo "3. programmer error (yeah it happens!)" | |
exit 0 | |
;; | |
esac | |
find_version | |
done | |
# cleanup | |
rm -rf /tmp/freepbx-updates | |
echo "Deleting /tmp/freepbx-updates." | |
sleep 3 | |
echo "You are on version $CURRENT_VER of FreePBX, Great Job!" | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment