summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/example_hook_cpiogz84
1 files changed, 84 insertions, 0 deletions
diff --git a/docs/example_hook_cpiogz b/docs/example_hook_cpiogz
new file mode 100644
index 0000000..f3e44d9
--- /dev/null
+++ b/docs/example_hook_cpiogz
@@ -0,0 +1,84 @@
+#!/bin/sh
+
+#
+# The environment contains at least:
+#
+# CONFDIR -- usually /etc/mkinitramfs, can be set on mkinitramfs
+# command line.
+#
+# DESTDIR -- The staging directory where we are building the image.
+#
+# TODO: Decide what environment variables are meaningful and defined
+# in this context, then document them as part of the interface.
+#
+# TODO: Write a common header for these examples or move this
+# documentation to a man page and reference it here. :-)
+#
+
+#
+# List the soft prerequisites here. This is a space separated list of
+# names, of scripts that are in the same directory as this one, that
+# must be run before this one can be.
+#
+PREREQ=""
+
+prereqs()
+{
+ echo "$PREREQ"
+}
+
+case $1 in
+# get pre-requisites
+prereqs)
+ prereqs
+ exit 0
+ ;;
+esac
+
+#
+# Source the 'hook-functions' scriptlet (for 'catenate_cpiogz'):
+#
+. /usr/share/initramfs-tools/hook-functions
+
+#
+# Lets pretend it has a conffile (think debconf), and we source it
+# here. Don't make debconf lookup calls here. The postinst for the
+# package owning this hook script should have done that and configured
+# the "/etc/default/conffile" already.
+#
+# TODO: How does the package ensure that it's installed BEFORE the
+# corresponding 'linux-image' package? Can it declare that, in
+# the case where it's an add-on that the 'linux-image' is not
+# aware of? This might be an apt and dpkg issue.
+#
+# * Eg. an optional usplash or suspend2ui_fbsplash package.
+#
+. /etc/default/mypackage-initramfs
+
+#
+# Also pretend that we only include our initramfs overlay if an opion
+# is not "no", and the 'linux-image' package we are generating this
+# initramfs for matches the version this script's package is designed
+# for. Just for example; pretend this example mkinitramfs hook script
+# is part of a 'linux-image' or 'xxx-modules' package.
+#
+if [ "$MYOPTION" != "no" -a "$version" = "2.6.12+ss2.1.9.1" ]; then
+ catenate_cpiogz /usr/lib/mypackage/initramfs.cpio.gz
+fi
+
+#
+# In this case, there does not have to be an (eg.):
+#
+# "/etc/mkinitramfs/init-top/mypackage"
+#
+# ... since that script is probably inside of the initramfs overlay
+# already. If it's a conffile though, it does not belong in there,
+# and should be placed in the appropriate location inside of
+# "/etc/mkinitramfs". Remember that if it needs access to the
+# settings in our "/etc/default/mypackage-initramfs", then that file
+# must also get copied into a location inside of ${DESTDIR} by this
+# hook script in order to make it available inside of the initramfs
+# environment.
+#
+
+exit 0