diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2008-12-21 07:34:47 +0000 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2010-09-30 07:09:21 +0000 |
commit | a6147124891cd103649c6579ec0f9f97df94922b (patch) | |
tree | 8f0a701be45d3cc7a36b985cee75c0a114bfee99 | |
parent | 288651b62061c0c0e9acddbaacdf4bd563e5dc0d (diff) |
Gracefully handle someone /deleting/ the firmware package.
-rwxr-xr-x | Library/firmware.sh | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/Library/firmware.sh b/Library/firmware.sh index 3edf8d0..0ad6175 100755 --- a/Library/firmware.sh +++ b/Library/firmware.sh @@ -1,27 +1,21 @@ #!/bin/bash +set -e -# XXX: FIX THIS!! -architecture=iphoneos-arm version=$(sw_vers -productVersion) -if grep '^Package: firmware$' /var/lib/dpkg/status >/dev/null; then - cat /var/lib/dpkg/status | while IFS= read -r line; do - if [[ ${line} == 'Package: firmware' ]]; then - firmware= - elif [[ ${line} == '' ]]; then - unset firmware - elif [[ ${line} == Architecture:* && "${firmware+@}" ]]; then - echo "Architecture: ${architecture}" - continue - elif [[ ${line} == Version:* && "${firmware+@}" ]]; then - echo "Version: ${version}" - continue - fi - - echo "${line}" - done >/var/lib/dpkg/status_ -else - cat /var/lib/dpkg/status - >/var/lib/dpkg/status_ <<EOF +cat /var/lib/dpkg/status | while IFS= read -r line; do + if [[ ${line} == 'Package: firmware' ]]; then + firmware= + elif [[ ${line} == '' ]]; then + unset firmware + elif [[ "${firmware+@}" ]]; then + continue + fi + + echo "${line}" +done >/var/lib/dpkg/status_ + +cat >>/var/lib/dpkg/status_ <<EOF Package: firmware Essential: yes Status: install ok installed @@ -29,13 +23,14 @@ Priority: required Section: System Installed-Size: 0 Maintainer: Jay Freeman (saurik) <saurik@saurik.com> -Architecture: ${architecture} +Architecture: iphoneos-arm Version: ${version} Description: almost impressive Apple frameworks Name: iPhone Firmware EOF -fi && mv -f /var/lib/dpkg/status{_,} + +mv -f /var/lib/dpkg/status{_,} echo "/." >/var/lib/dpkg/info/firmware.list |