Project

General

Profile

Download (2.05 KB) Statistics
| Branch: | Tag: | Revision:
1
#!/bin/sh
2

    
3
# /etc/rc.firmware_auto
4
# Copyright (C) 2005-2015 Electric Sheep Fencing LLC
5
# Part of pfSense
6

    
7
# $Id$
8

    
9
FMBASEURL=$1
10
FMFILENAME=$2
11
FETCHFILENAME=$1/$2
12

    
13
product=`cat /etc/inc/globals.inc | grep product_name | cut -d'"' -f4`
14

    
15
# wait 5 seconds before beginning
16
sleep 5
17

    
18
logger -p daemon.info -i -t AutoUpgrade "Auto Upgrade started"
19

    
20
HTTP_AUTH=""
21

    
22
# if username and password is passed, let fetch utilize.
23
if [ $# -gt 3 ]; then
24
HTTP_AUTH="basic:*:$3:$4"
25
fi
26

    
27
if [ $# -gt 1 ]; then
28
	echo "Downloading $FMFILENAME from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade
29
	/usr/bin/fetch -o /tmp/latest.tgz $FETCHFILENAME | logger -p daemon.info -i -t AutoUpgrade
30
	echo "Downloading $FMFILENAME.sha256 from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade
31
	/usr/bin/fetch -o /tmp/latest.tgz.sha256 $FETCHFILENAME.sha256 | logger -p daemon.info -i -t AutoUpgrade
32
fi
33

    
34
DLHASH=`/bin/cat /tmp/latest.tgz.sha256 | cut -d" " -f4 `
35
FILEHASH=`/sbin/sha256 /tmp/latest.tgz | cut -d" " -f4`
36

    
37
PLATFORM=`cat /etc/platform`
38

    
39
echo "   Package sha256: ${DLHASH}" | logger -p daemon.info -i -t AutoUpgrade
40
echo "Downloaded sha256: ${FILEHASH}" | logger -p daemon.info -i -t AutoUpgrade
41

    
42
if [ "$DLHASH" = "" ]; then
43
	echo "Downloaded sha256 is null. Require proxy auth?" | logger -p daemon.info -i -t AutoUpgrade
44
	exit 1
45
fi
46

    
47
if [ "$FILEHASH" = "" ]; then
48
	echo "Downloaded file's sha256 is null." | logger -p daemon.info -i -t AutoUpgrade
49
	exit 1
50
fi
51

    
52
if [ "$DLHASH" = "$FILEHASH" ]; then
53
	echo "sha256 hashes match." | logger -p daemon.info -i -t AutoUpgrade
54
	echo "Beginning ${product} upgrade." | wall
55
	if [ "$PLATFORM" = "nanobsd" ]; then
56
		/usr/local/bin/php-cgi /etc/rc.conf_mount_rw
57
	fi
58
	if [ -r "/tmp/custom.tgz" ]; then
59
		sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz /tmp/custom.tgz
60
	else
61
		if [ "$PLATFORM" = "nanobsd" ]; then
62
			sh /etc/rc.firmware pfSenseNanoBSDupgrade /tmp/latest.tgz
63
		else
64
			sh /etc/rc.firmware pfSenseupgrade /tmp/latest.tgz
65
		fi
66
	fi
67
	exit 0
68
fi
69

    
70
echo "sha256 hashes do not match. Upgrade aborted." | logger -p daemon.info -i -t AutoUpgrade
71
rm /tmp/latest*
72
exit 1
(54-54/105)