mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
73 lines
2.0 KiB
Bash
Executable File
73 lines
2.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# /etc/rc.firmware_auto
|
|
# Copyright (C) 2005-2015 Electric Sheep Fencing LLC
|
|
# Part of pfSense
|
|
|
|
# $Id$
|
|
|
|
FMBASEURL=$1
|
|
FMFILENAME=$2
|
|
FETCHFILENAME=$1/$2
|
|
|
|
product=`cat /etc/inc/globals.inc | grep product_name | cut -d'"' -f4`
|
|
|
|
# wait 5 seconds before beginning
|
|
sleep 5
|
|
|
|
logger -p daemon.info -i -t AutoUpgrade "Auto Upgrade started"
|
|
|
|
HTTP_AUTH=""
|
|
|
|
# if username and password is passed, let fetch utilize.
|
|
if [ $# -gt 3 ]; then
|
|
HTTP_AUTH="basic:*:$3:$4"
|
|
fi
|
|
|
|
if [ $# -gt 1 ]; then
|
|
echo "Downloading $FMFILENAME from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade
|
|
/usr/bin/fetch -o /tmp/latest.tgz $FETCHFILENAME | logger -p daemon.info -i -t AutoUpgrade
|
|
echo "Downloading $FMFILENAME.sha256 from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade
|
|
/usr/bin/fetch -o /tmp/latest.tgz.sha256 $FETCHFILENAME.sha256 | logger -p daemon.info -i -t AutoUpgrade
|
|
fi
|
|
|
|
DLHASH=`/bin/cat /tmp/latest.tgz.sha256 | cut -d" " -f4 `
|
|
FILEHASH=`/sbin/sha256 /tmp/latest.tgz | cut -d" " -f4`
|
|
|
|
PLATFORM=`cat /etc/platform`
|
|
|
|
echo " Package sha256: ${DLHASH}" | logger -p daemon.info -i -t AutoUpgrade
|
|
echo "Downloaded sha256: ${FILEHASH}" | logger -p daemon.info -i -t AutoUpgrade
|
|
|
|
if [ "$DLHASH" = "" ]; then
|
|
echo "Downloaded sha256 is null. Require proxy auth?" | logger -p daemon.info -i -t AutoUpgrade
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$FILEHASH" = "" ]; then
|
|
echo "Downloaded file's sha256 is null." | logger -p daemon.info -i -t AutoUpgrade
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$DLHASH" = "$FILEHASH" ]; then
|
|
echo "sha256 hashes match." | logger -p daemon.info -i -t AutoUpgrade
|
|
echo "Beginning ${product} upgrade." | wall
|
|
if [ "$PLATFORM" = "nanobsd" ]; then
|
|
/usr/local/bin/php /etc/rc.conf_mount_rw
|
|
fi
|
|
if [ -r "/tmp/custom.tgz" ]; then
|
|
sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz /tmp/custom.tgz
|
|
else
|
|
if [ "$PLATFORM" = "nanobsd" ]; then
|
|
sh /etc/rc.firmware pfSenseNanoBSDupgrade /tmp/latest.tgz
|
|
else
|
|
sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz
|
|
fi
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
echo "sha256 hashes do not match. Upgrade aborted." | logger -p daemon.info -i -t AutoUpgrade
|
|
rm /tmp/latest*
|
|
exit 1
|