live-build/helpers/lh_binary_includes

121 lines
2.9 KiB
Bash
Executable File

#!/bin/sh
# lh_binary_includes(1) - copy files 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="copy files into binary"
HELP=""
USAGE="${PROGRAM} [--force]"
Arguments "${@}"
Echo_debug "Init ${PROGRAM}"
# Reading configuration files
Read_conffile config/common
Read_conffile config/bootstrap
Read_conffile config/chroot
Read_conffile config/binary
Read_conffile config/source
Set_defaults
if [ "${LIVE_INCLUDES}" = "none" ]
then
exit 0
fi
Breakpoint "binary_includes: Init"
# Requiring stage file
Require_stagefile .stage/bootstrap
# Checking stage file
Check_stagefile .stage/binary_includes
# Checking lock file
Check_lockfile .lock
# Creating lock file
Create_lockfile .lock
# Check includes
if [ ! -d "${LIVE_INCLUDES}" ]
then
if [ -d ../"${LIVE_INCLUDES}" ]
then
LIVE_INCLUDES="../${LIVE_INCLUDES}"
else
Echo_error "user specified includes not accessible in ${LIVE_INCLUDES}"
exit 1
fi
fi
# Assemble architecture
case "${LIVE_ARCHITECTURE}" in
amd64)
ARCH="amd"
;;
i386)
ARCH="386"
;;
powerpc)
ARCH="ppc"
;;
esac
if [ "${LIVE_DEBIAN_INSTALLER}" = "enabled" ]
then
# Working arround vfat limitations
if [ "${LIVE_BINARY_IMAGE}" = "usb-hdd" ]
then
CP_OPTIONS="-L"
fi
# Copying d-i templates
if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install ] && \
ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install/* &> /dev/null
then
cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install/* binary
fi
if [ -d "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install."${ARCH}" ] && \
ls "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install."${ARCH}"/* &> /dev/null
then
cp -r ${CP_OPTIONS} "${LIVE_INCLUDES}"/"${LIVE_DISTRIBUTION}"/install."${ARCH}"/* binary
fi
# Adjusting d-i templates
DEBIAN_NAME="/Debian GNU/Linux 4.0 r0 \"Etch\" - Unofficial amd64 NETINST/LIVE Binary-1"
DEBIAN_DATE="`date +%Y%m%d-%H:%M`"
if [ "${LIVE_ARCHITECTURE}" = "i386" ]
then
DEBIAN_TOOLS_HTML=" <P>\n <tt>&nbsp;\n <A href="tools/">/tools/</a>\n </tt>\n\n and\n <tt>&nbsp;\n <A href="install/floppy/">/install/floppy/</a>\n </tt>"
DEBIAN_TOOLS_TXT="/tools/ and /install/floppy/"
else
DEBIAN_TOOLS_HTML=" <P>\n <tt>&nbsp;\n <A href="tools/">/tools/</a>\n </tt>\n\n\n\n\n\n"
DEBIAN_TOOLS_TXT="/tools/"
fi
sed -i -e "s#DEBIAN_NAME#${DEBIAN_NAME}#g" -e "s/DEBIAN_DATE/${DEBIAN_DATE}/g" -e "s#DEBIAN_TOOLS#${DEBIAN_TOOLS_HTML}#g" binary/README.html
sed -i -e "s#DEBIAN_NAME#${DEBIAN_NAME}#g" -e "s/DEBIAN_DATE/${DEBIAN_DATE}/g" -e "s#DEBIAN_TOOLS#${DEBIAN_TOOLS_TXT}#g" binary/README.txt
fi
# Creating stage file
Create_stagefile .stage/binary_includes