summaryrefslogtreecommitdiff
path: root/Library
diff options
context:
space:
mode:
authorJay Freeman (saurik) <saurik@saurik.com>2008-12-21 07:34:47 +0000
committerJay Freeman (saurik) <saurik@saurik.com>2010-09-30 07:09:21 +0000
commita6147124891cd103649c6579ec0f9f97df94922b (patch)
tree8f0a701be45d3cc7a36b985cee75c0a114bfee99 /Library
parent288651b62061c0c0e9acddbaacdf4bd563e5dc0d (diff)
Gracefully handle someone /deleting/ the firmware package.
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/firmware.sh39
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