diff options
author | Bill Marquette <billm@pfsense.org> | 2005-04-12 23:33:59 +0000 |
---|---|---|
committer | Bill Marquette <billm@pfsense.org> | 2005-04-12 23:33:59 +0000 |
commit | 3200f985e7f46e5d88c975ea98f104549b4f891f (patch) | |
tree | f543c9b730d5961a67a66e112faf72a6a4bfc5b1 /etc/rc.firmware | |
parent | d5300718cce67211aad5cdd2f30509d17f74045e (diff) | |
download | pfsense-3200f985e7f46e5d88c975ea98f104549b4f891f.zip pfsense-3200f985e7f46e5d88c975ea98f104549b4f891f.tar.gz |
correctly ignore directories
compare md5's against the right variables
Diffstat (limited to 'etc/rc.firmware')
-rwxr-xr-x | etc/rc.firmware | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/etc/rc.firmware b/etc/rc.firmware index 18788cf..93607d7 100755 --- a/etc/rc.firmware +++ b/etc/rc.firmware @@ -15,32 +15,33 @@ fi binary_update() { TGZ=$1 + rm /tmp/errors mkdir /tmp/patched /tmp/patches cd /tmp/patches - for i in `tar tzf $TGZ | egrep -v "(^\./\.*/$|^\./$|.md5)"`; - do ( - echo "Working on ${i}"; + for i in `tar tzf $TGZ | egrep -v "(^d|_md5)" | nawk '{print $9;}'`; + do + echo "Working on ${i}" # Untar patch file and md5 files - /usr/bin/tar xvzf ${TGZ} ${i} ${i}.old_file_md5 ${i}.new_patch_md5 ${i}.new_file_md5; + /usr/bin/tar xvzf ${TGZ} ${i} ${i}.old_file_md5 ${i}.new_patch_md5 ${i}.new_file_md5 # Apply patch - oldfile newfile patchfile - /usr/local/bin/bspatch /${i} /tmp/patched/${i} /tmp/patches/${i}; - - OLD_FILE_MD5=`cat /tmp/patches/${i}.old_file_md5`; - NEW_PATCH_MD5=`cat /tmp/patches/${i}.new_patch_md5`; - NEW_FILE_MD5=`cat /tmp/patches/${i}.new_file_md5`; - PATCHED_MD5=`/sbin/md5 -q /tmp/patched/${i}`; - if [ "$PATCHED_MD5" = "$NEW_FILE_MD5" ]; then - /bin/mv /tmp/patched/${i} /${i}; + /usr/local/bin/bspatch /${i} /tmp/patched/${i} /tmp/patches/${i} + + OLD_FILE_MD5=`cat /tmp/patches/${i}.old_file_md5` + NEW_PATCH_MD5=`cat /tmp/patches/${i}.new_patch_md5` + NEW_FILE_MD5=`cat /tmp/patches/${i}.new_file_md5` + PATCHED_MD5=`/sbin/md5 -q /tmp/patched/${i}` + + if [ "$PATCHED_MD5" = "$NEW_PATCH_MD5" ]; then + /bin/mv /tmp/patched/${i} /${i} else - echo "${i} file does not match intended final md5."; - echo "${i} file does not match intended final md5." >> /tmp/errors; + echo "${i} file does not match intended final md5." + echo "${i} file does not match intended final md5." >> /tmp/errors fi /bin/rm /tmp/patched/${i} /bin/rm /tmp/patches/${i} - /bin/rm /tmp/patches/${i}.*; - ); + /bin/rm /tmp/patches/${i}.* done } |