diff options
author | Renato Botelho <renato@netgate.com> | 2015-08-25 08:08:24 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2015-08-25 14:49:54 -0300 |
commit | 46bc6e545a17e77202aaf01ec0cd8d5a46567525 (patch) | |
tree | 32d18dda436ec739c67c489ceb771e8629cd926f /src/etc/rc.firmware_auto | |
parent | 4d9801c2dbd2b3e54a39578ee62b93af66607227 (diff) | |
download | pfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.zip pfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.tar.gz |
Move main pfSense content to src/
Diffstat (limited to 'src/etc/rc.firmware_auto')
-rwxr-xr-x | src/etc/rc.firmware_auto | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/etc/rc.firmware_auto b/src/etc/rc.firmware_auto new file mode 100755 index 0000000..5b355df --- /dev/null +++ b/src/etc/rc.firmware_auto @@ -0,0 +1,72 @@ +#!/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-cgi /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 |