1
|
#!/bin/sh
|
2
|
|
3
|
# $Id$
|
4
|
|
5
|
FMBASEURL=$1
|
6
|
FMFILENAME=$2
|
7
|
FETCHFILENAME=$1/$2
|
8
|
|
9
|
product=`cat /etc/inc/globals.inc | grep product_name | cut -d'"' -f4`
|
10
|
|
11
|
# wait 5 seconds before beginning
|
12
|
sleep 5
|
13
|
|
14
|
logger -p daemon.info -i -t AutoUpgrade "Auto Upgrade started"
|
15
|
|
16
|
HTTP_AUTH=""
|
17
|
|
18
|
# if username and password is passed, let fetch utilize.
|
19
|
if [ $# -gt 3 ]; then
|
20
|
HTTP_AUTH="basic:*:$3:$4"
|
21
|
fi
|
22
|
|
23
|
#echo "Downloading $FMFILENAME from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade
|
24
|
#/usr/bin/fetch -o /tmp/latest.tgz $FETCHFILENAME | logger -p daemon.info -i -t AutoUpgrade
|
25
|
#echo "Downloading $FMFILENAME.md5 from $FMBASEURL ..." | logger -p daemon.info -i -t AutoUpgrade
|
26
|
#/usr/bin/fetch -o /tmp/latest.tgz.md5 $FETCHFILENAME.md5 | logger -p daemon.info -i -t AutoUpgrade
|
27
|
|
28
|
PMD=`/bin/cat /tmp/latest.tgz.md5 | cut -d" " -f4 `
|
29
|
MD=`/sbin/md5 /tmp/latest.tgz | cut -d" " -f4`
|
30
|
|
31
|
PLATFORM=`cat /etc/platform`
|
32
|
|
33
|
echo " Package MD5: ${PMD}" | logger -p daemon.info -i -t AutoUpgrade
|
34
|
echo "Downloaded MD5: ${MD}" | logger -p daemon.info -i -t AutoUpgrade
|
35
|
|
36
|
if [ "$PMD" = "" ]; then
|
37
|
echo "Package MD5 is null md5. Require proxy auth?" | logger -p daemon.info -i -t AutoUpgrade
|
38
|
exit 1
|
39
|
fi
|
40
|
|
41
|
if [ "$MD" = "" ]; then
|
42
|
echo "Downloaded MD5 is null md5. Require proxy auth?" | logger -p daemon.info -i -t AutoUpgrade
|
43
|
exit 1
|
44
|
fi
|
45
|
|
46
|
if [ "$PMD" = "$MD" ]; then
|
47
|
echo "MD5's match." | logger -p daemon.info -i -t AutoUpgrade
|
48
|
echo "Beginning ${product} upgrade." | wall
|
49
|
if [ "$PLATFORM" = "net45xx" ]; then
|
50
|
/usr/local/bin/php /etc/rc.conf_mount_rw
|
51
|
fi
|
52
|
if [ "$PLATFORM" = "wrap" ]; then
|
53
|
/usr/local/bin/php /etc/rc.conf_mount_rw
|
54
|
fi
|
55
|
if [ "$PLATFORM" = "nanobsd" ]; then
|
56
|
/usr/local/bin/php /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
|
if [ "$PLATFORM" = "wrap" ]; then
|
68
|
/bin/sync
|
69
|
sleep 5
|
70
|
/usr/local/bin/php /etc/rc.conf_mount_ro
|
71
|
if [ -e /etc/init_bootloader.sh ]; then
|
72
|
sh /etc/init_bootloader.sh
|
73
|
fi
|
74
|
fi
|
75
|
if [ "$PLATFORM" = "net45xx" ]; then
|
76
|
/bin/sync
|
77
|
sleep 5
|
78
|
/usr/local/bin/php /etc/rc.conf_mount_ro
|
79
|
if [ -e /etc/init_bootloader.sh ]; then
|
80
|
sh /etc/init_bootloader.sh
|
81
|
fi
|
82
|
fi
|
83
|
exit 0
|
84
|
fi
|
85
|
|
86
|
echo "MD5's do not match. Upgrade aborted." | logger -p daemon.info -i -t AutoUpgrade
|
87
|
rm /tmp/latest*
|
88
|
exit 1
|