#!/bin/sh
#
#  Install modules from the host system into the new image, and
# ensure that 'module-init-tools' is setup.
#
#  This is most likely required if you're using a custom kernel
# for your Xen system.  But even if it isn't required it can't
# really do anything bad; just waste a bit of space.
#
# Steve
# --
# http://www.steve.org.uk/


prefix=$1



#
#  Source our common functions
#
if [ -e /usr/lib/xen-tools/common.sh ]; then
    . /usr/lib/xen-tools/common.sh
else
    . ./hooks/common.sh
fi


#
# Log our start
#
logMessage Script $0 starting


#
#  The name of the package containing the correct modules.
#
linux_modules_package="linux-modules-$(uname -r)"

#
#  Attempt to install that package.  This will either work on an Etch
# system, or fail on a Sarge/custom kernel.
#
if [ -n "${modules}" -a -d "${modules}" ]; then

    #
    # Modules path was specified during install
    #
    logMessage "Copying modules from ${modules}"

    mkdir -p ${prefix}/lib/modules
    cp -au ${modules} ${prefix}/lib/modules
elif chroot ${prefix} /usr/bin/apt-cache show ${linux_modules_package} >/dev/null 2>/dev/null; then

    logMessage "Package '${linux_modules_package}' is available - installing"

    #
    # If it worked then we can install the package.
    #
    installDebianPackage ${prefix} ${linux_modules_package}
else

    #
    # Fall back to copying over modules from the host to the new
    # system.
    #
    logMessage "Package '${linux_modules_package}' is not available"
    logMessage "Copying modules from /lib/modules/$(uname -r)"

    mkdir -p ${prefix}/lib/modules
    cp -au /lib/modules/$(uname -r) ${prefix}/lib/modules
fi


#
#  Install the module-init-tools package.
#
installDebianPackage ${prefix} module-init-tools


#
#  Log our finish
#
logMessage Script $0 finished
