diff options
Diffstat (limited to 'helpers/lh_binary_memtest')
-rwxr-xr-x | helpers/lh_binary_memtest | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/helpers/lh_binary_memtest b/helpers/lh_binary_memtest new file mode 100755 index 000000000..48c8001dd --- /dev/null +++ b/helpers/lh_binary_memtest @@ -0,0 +1,150 @@ +#!/bin/sh + +# lh_binary_memtest(1) - installs a memtest into binary +# Copyright (C) 2006-2007 Daniel Baumann <daniel@debian.org> +# +# live-helper comes with ABSOLUTELY NO WARRANTY; for details see COPYING. +# This is free software, and you are welcome to redistribute it +# under certain conditions; see COPYING for details. + +set -e + +# Source common functions +for FUNCTION in /usr/share/live-helper/functions/*.sh +do + . ${FUNCTION} +done + +# Set static variables +DESCRIPTION="installs a memtest into binary" +HELP="" +USAGE="${PROGRAM} [--force]" + +Arguments "${@}" + +Echo_debug "Init ${PROGRAM}" + +# Reading configuration files +Read_conffile config/bootstrap +Read_conffile config/chroot +Read_conffile config/common +Read_conffile config/image +Set_defaults + +if [ "${LIVE_MEMTEST}" = "disabled" ] +then + exit 0 +fi + +Breakpoint "binary_memtest: Init" + +# Requiring stage file +Require_stagefile .stage/bootstrap + +# Checking stage file +Check_stagefile .stage/binary_memtest + +# Checking lock file +Check_lockfile .lock + +# Creating lock file +Create_lockfile .lock + +if [ "${LIVE_ARCHITECTURE}" != "amd64" ] && [ "${LIVE_ARCHITECTURE}" != "i386" ] +then + Echo_warning "skipping binary_memtest, foreign architecture." + exit 0 +fi + +case "${LIVE_MEMTEST}" in + memtest86) + if [ ! -f chroot/boot/memtest86.bin ] + then + PACKAGES="${PACKAGES} memtest86" + fi + ;; + + memtest86+) + if [ ! -f chroot/boot/memtest86+.bin ] + then + PACKAGES="${PACKAGES} memtest86+" + fi + ;; +esac + +if [ -n "${PACKAGES}" ] +then + # Installing symlinks + case "${LH_APT}" in + apt|apt-get) + Chroot "apt-get install --yes ${PACKAGES}" + ;; + + aptitude) + Chroot "aptitude install --assume-yes ${PACKAGES}" + ;; + esac +fi + +# Setting destination directory +case "${LIVE_BINARY_IMAGE}" in + iso) + DESTDIR="binary/live" + ;; + + net) + DESTDIR="tftpboot" + ;; + + usb|hdd) + DESTDIR="binary" + ;; +esac + +# Temporary check for broken syslinux +if [ "${LIVE_BINARY_IMAGE}" = "iso" ] +then + # Assemble multi-arch + if [ -n "${MULTIARCH}" ] + then + case "${LIVE_ARCHITECTURE}" in + i386) + DESTDIR="${DESTDIR}.386" + ;; + esac + fi +fi + +# Creating directory +if [ ! -d "${DESTDIR}" ] +then + mkdir -p "${DESTDIR}" +fi + +# Installing memtest +case "${LIVE_MEMTEST}" in + memtest86) + cp -f chroot/boot/memtest86.bin "${DESTDIR}"/memtest + ;; + + memtest86+) + cp -f chroot/boot/memtest86+.bin "${DESTDIR}"/memtest + ;; +esac + +if [ -n "${PACKAGES}" ] +then + # Removing packages + case "${LH_APT}" in + apt|apt-get) + Chroot "apt-get remove --purge --yes ${PACKAGES}" + ;; + + aptitude) + Chroot "aptitude purge --assume-yes ${PACKAGES}" + ;; + esac +fi + +# Creating stage file +Create_stagefile .stage/binary_memtest |