summaryrefslogtreecommitdiff
path: root/scripts/casper-bottom/40install_driver_updates
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/casper-bottom/40install_driver_updates')
-rwxr-xr-xscripts/casper-bottom/40install_driver_updates40
1 files changed, 40 insertions, 0 deletions
diff --git a/scripts/casper-bottom/40install_driver_updates b/scripts/casper-bottom/40install_driver_updates
new file mode 100755
index 0000000..272a0ed
--- /dev/null
+++ b/scripts/casper-bottom/40install_driver_updates
@@ -0,0 +1,40 @@
+#! /bin/sh
+
+PREREQ=""
+DESCRIPTION="Installing driver updates..."
+
+. /scripts/casper-functions
+
+prereqs()
+{
+ echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+
+if [ ! -d /tmp/driver-updates ]; then
+ exit 0
+fi
+
+log_begin_msg "$DESCRIPTION"
+
+install_dir=/var/cache/driver-updates
+
+mkdir "/root$install_dir"
+cp -a /tmp/driver-updates/*.deb "/root$install_dir/"
+
+# We cannot leave packages in a bad state. So if the install fails, remove
+# it. This will get caught in casper.log.
+for deb in "/root$install_dir"/*; do
+ if ! chroot /root dpkg -i "$install_dir/$deb"; then
+ chroot /root dpkg -P "${deb%%_*}"
+ fi
+done
+
+log_end_msg