#!/bin/sh set -e # Set static variables PROGRAM="`basename ${0}`" DESCRIPTION="utility to build Debian Live systems" # Source common functions for FUNCTION in /usr/share/live-helper/functions/*.sh do . ${FUNCTION} done Set_defaults # Source existing configuration Read_conffile debian-live/config/common Read_conffile debian-live/config/bootstrap Read_conffile debian-live/config/chroot Read_conffile debian-live/config/image USAGE="Usage: ${PROGRAM} [config] [--apt apt|aptitude] [--apt-ftpproxy URL] [--apt-httpproxy URL] [--apt-generic enabled|disabled] [--apt-pdiffs enabled|disabled] [--apt-recommends enabled|disabled] [--bootstrap cdebootstrap|deboostrap] [--cache enabled|disabled] [--debconf-frontend dialog|readline|noninteractive] [--debconf-priority low|medium|high|critical] [--genisoimage genisoimage|mkisofs] [--losetup losetup|losetup.org] [--root DIRECTORY] [-a|--architecture ARCHITECTURE] [-d|--distribution testing|unstable|etch|sid] [--distribution-config DIRECTORY] [-f|--flavour minimal|standard] [-m|--mirror-local URL] [--mirror-local-security URL] [--mirror-generic URL] [--mirror-generic-security URL] [--sections SECTION|\"SECTIONS\"] [-k|--kernel KERNEL] [--kernel-packages PACKAGES] [-l|--language LANGUAGE] [--packages PACKAGE|\"PACKAGES\"] [-p|--packages-list LIST] [--tasks TASK|\"TASKS\"] [--security enabled|disabled] [--symlinks enabled|disabled] [--sysvinit enabled|disabled] [--bootappend KERNEL_PARAMETER|\"KERNEL_PARAMETERS\"] [-e|--encryption ALGORITHM] [--filesystem ext2|plain|squashfs] [--memtest86 enabled|disabled] [--iso-volume STRING] [--server-address HOSTNAME|IP] [--server-path DIRECTORY] [--source enabled|disabled] [--syslinux enabled|disabled] [--syslinux-splash FILE] [-b|--binary-image hdd|iso|usb|net] [-s|--source-image generic|hdd|iso|usb|net] [--templates DIRECTORY]" HELP="Lists: gnome, gnome-core, gnome-desktop, gnome-full, gnome-junior, gnustep, kde, kde-core, kde-desktop, kde-extra, kde-full, kde-junior, mini, minimal, minimal-net, rescue, standard, standard-x11, xfce, xfce-desktop, xfce-junior" Main () { ARGUMENTS="`getopt --longoptions apt:,apt-ftpproxy:,apt-httpproxy:,apt-generic:,apt-pdiffs:,apt-recommends:,bootstrap:,cache:,debconf-frontend:,debconf-priority:,genisoimage:,losetup:,root:,architecture:,distribution:,distribution-config:,flavour:,mirror:,mirror-security:,mirror-generic:,mirror-generic-security:,sections:,kernel:,kernel-packages:,language:,packages:,packages-list:,tasks:,security:,symlinks:,sysvinit:,bootappend:,encryption:,filesystem:,memtest86:,iso-volume:,server-address:,server-path:,source:,syslinux:,syslinux-splash:,binary-image:,binary-source:,templates:,help,usage,version --name=${PROGRAM} --options a:d:f:m:k:l:p:e:b:s:huv --shell sh -- "${@}"`" if [ "${?}" != "0" ] then echo "Terminating." >&2 exit 1 fi if [ "${1}" = "config" ] then CONFIG="true" fi eval set -- "${ARGUMENTS}" while true do case "${1}" in # common --apt) LH_APT="${2}"; shift 2 ;; --apt-ftpproxy) LH_APT_FTPPROXY="${2}"; shift 2 ;; --apt-httpproxy) LH_APT_HTTPPROXY="${2}"; shift 2 ;; --apt-generic) LH_APT_GENERIC="${2}"; shift 2 ;; --apt-pdiffs) LH_APT_PDIFFS="${2}"; shift 2 ;; --apt-recommends) LH_APT_RECOMMENDS="${2}"; shift 2 ;; --bootstrap) LH_BOOTSTRAP="${2}"; shift 2 ;; --cache) LH_CACHE="${2}"; shift 2 ;; --debconf-frontend) LH_DEBCONF_FRONTEND="${2}"; shift 2 ;; --debconf-priority) LH_DEBCONF_PRIORITY="${2}"; shift 2 ;; --genisoimage) LH_GENISOIMAGE="${2}"; shift 2 ;; --losetup) LH_LOSETUP="${2}"; shift 2 ;; --root) LIVE_ROOT="${2}"; shift 2 ;; # bootstrap -a|--architecture) LIVE_ARCHITECTURE="${2}"; shift 2 ;; -d|--distribution) LIVE_DISTRIBUTION="${2}"; shift 2 export LIVE_DISTRIBUTION ;; --distribution-config) LIVE_DISTRIBUTION_CONFIG="${2}"; shift 2 ;; -f|--flavour) LIVE_FLAVOUR="${2}"; shift 2 ;; -m|--mirror-local) LIVE_MIRROR_LOCAL="${2}"; shift 2 ;; --mirror-local-security) LIVE_MIRROR_LOCAL_SECURITY="${2}"; shift 2 ;; --mirror-generic) LIVE_MIRROR_GENERIC="${2}"; shift 2 ;; --mirror-generic-security) LIVE_MIRROR_GENERIC_SECURITY="${2}"; shift 2 ;; --sections) LIVE_SECTIONS="${2}"; shift 2 ;; # chroot -k|--kernel) LIVE_KERNEL="${2}"; shift 2 ;; --kernel-packages) LIVE_KERNEL_PACKAGES="${2}"; shift 2 ;; -l|--language) LIVE_LANGUAGE="${2}"; shift 2 ;; --packages) LIVE_PACKAGES="${2}"; shift 2 ;; -p|--packages-list) LIVE_PACKAGES_LIST="${2}"; shift 2 ;; --tasks) LIVE_TASKS="${2}"; shift 2 ;; --security) LIVE_SECURITY="${2}"; shift 2 ;; --symlinks) LIVE_SYMLINKS="${2}"; shift 2 ;; --sysvinit) LIVE_SYSVINIT="${2}"; shift 2 ;; # image --bootappend) LIVE_BOOTAPPEND="${2}"; shift 2 ;; -e|--encryption) LIVE_ENCRYPTION="${2}"; shift 2 ;; --filesystem) LIVE_FILESYSTEM="${2}"; shift 2 ;; --memtest86) LIVE_MEMTEST86="${2}"; shift 2 ;; --iso-volume) LIVE_ISO_VOLUME="${2}"; shift 2 ;; --server-address) LIVE_SERVER_ADDRESS="${2}"; shift 2 ;; --server-path) LIVE_SERVER_PATH="${2}"; shift 2 ;; --source) LIVE_SOURCE="${2}"; shift 2 ;; --syslinux) LIVE_SYSLINUX="${2}"; shift 2 ;; --syslinux-splash) LIVE_SYSLINUX_SPLASH="${2}"; shift 2 ;; -b|--binary-image) LIVE_BINARY_IMAGE="${2}"; shift 2 ;; -s|--source-image) LIVE_SOURCE_IMAGE="${2}"; shift 2 ;; --templates) LIVE_TEMPLATES="${2}"; shift 2 ;; # other -h|--help) Help; shift ;; -u|--usage) Usage 0; shift ;; -v|--version) Version; shift ;; --) shift; break ;; *) echo "Internal error." exit 1 ;; esac done # Initializing lh_testroot # Configuring (this is really shit!) LH_APT="${LH_APT}" LH_APT_FTPPROXY="${LH_APT_FTPPROXY}" LH_APT_HTTPPROXY="${LH_APT_HTTPPROXY}" LH_APT_GENERIC="${LH_APT_GENERIC}" LH_APT_PDIFFS="${LH_APT_PDIFFS}" LH_APT_RECOMMENDS="${LH_APT_RECOMMENDS}" LH_BOOTSTRAP="${LH_BOOTSTRAP}" LH_CACHE="${LH_CACHE}" LH_DEBCONF_FRONTEND="${LH_DEBCONF_FRONTEND}" LH_DEBCONF_PRIORITY="${LH_DEBCONF_PRIORITY}" LH_GENISOIMAGE="${LH_GENISOIMAGE}" LIVE_ROOT="${LIVE_ROOT}" LIVE_ARCHITECTURE="${LIVE_ARCHITECTURE}" LIVE_DISTRIBUTION="${LIVE_DISTRIBUTION}" LIVE_DISTRIBUTION_CONFIG="${LIVE_DISTRIBUTION_CONFIG}" LIVE_FLAVOUR="${LIVE_FLAVOUR}" LIVE_MIRROR_LOCAL="${LIVE_MIRROR_LOCAL}" LIVE_MIRROR_LOCAL_SECURITY="${LIVE_MIRROR_LOCAL_SECURITY}" LIVE_MIRROR_GENERIC="${LIVE_MIRROR_GENERIC}" LIVE_MIRROR_GENERIC_SECURITY="${LIVE_MIRROR_GENERIC_SECURITY}" LIVE_SECTIONS="${LIVE_SECTIONS}" LIVE_KERNEL="${LIVE_KERNEL}" LIVE_KERNEL_PACKAGES="${LIVE_KERNEL_PACKAGES}" LIVE_LANGUAGE="${LIVE_LANGUAGE}" LIVE_PACKAGES="${LIVE_PACKAGES}" LIVE_PACKAGES_LIST="${LIVE_PACKAGES_LIST}" LIVE_TASKS="${LIVE_TASKS}" LIVE_SECURITY="${LIVE_SECURITY}" LIVE_SYMLINKS="${LIVE_SYMLINKS}" LIVE_SYSVINIT="${LIVE_SYSVINIT}" LIVE_BOOTAPPEND="${LIVE_BOOTAPPEND}" LIVE_ENCRYPTION="${LIVE_ENCRYPTION}" LIVE_FILESYSTEM="${LIVE_FILESYSTEM}" LIVE_MEMTEST86="${LIVE_MEMTEST86}" LIVE_ISO_VOLUME="${LIVE_ISO_VOLUME}" LIVE_SERVER_ADDRESS="${LIVE_SERVER_ADDRESS}" LIVE_SERVER_PATH="${LIVE_SERVER_PATH}" LIVE_SOURCE="${LIVE_SOURCE}" LIVE_SYSLINUX="${LIVE_SYSLINUX}" LIVE_SYSLINUX_SPLASH="${LIVE_SYSLINUX_SPLASH}" LIVE_BINARY_IMAGE="${LIVE_BINARY_IMAGE}" LIVE_SOURCE_IMAGE="${LIVE_SOURCE_IMAGE}" LIVE_TEMPLATES="${LIVE_TEMPLATES}" lh_config newconfig # Building if [ -z "${CONFIG}" ] then cd "${LIVE_ROOT}" && lh_build fi } Main "${@}"