diff options
Diffstat (limited to 'docs')
-rw-r--r-- | docs/example_hook_cpiogz | 84 |
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 |