diff options
author | Daniel Baumann <daniel@debian.org> | 2007-09-23 10:04:20 +0200 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2007-09-23 10:04:20 +0200 |
commit | eeaafbe5c0d5f2ffd87bf7d9f12c13df1bd0adf5 (patch) | |
tree | 18151396add367542887fe7f017025538e3318d6 /make-live.sh | |
download | vyos-live-build-eeaafbe5c0d5f2ffd87bf7d9f12c13df1bd0adf5.tar.gz vyos-live-build-eeaafbe5c0d5f2ffd87bf7d9f12c13df1bd0adf5.zip |
Adding live-package 0.99-1.
Diffstat (limited to 'make-live.sh')
-rwxr-xr-x | make-live.sh | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/make-live.sh b/make-live.sh new file mode 100755 index 000000000..b0a958518 --- /dev/null +++ b/make-live.sh @@ -0,0 +1,283 @@ +#!/bin/sh + +# make-live - An utility for building Debian Live systems. +# +# Copyright (C) 2006 Daniel Baumann <daniel@debian.org> +# Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +set -e + +PROGRAM="`basename ${0}`" +VERSION="0.99" + +# Source default configuration +if [ -r /etc/make-live.conf ] +then + . /etc/make-live.conf +fi + +# Source alternate configuration +if [ ! -z "${LIVE_CONFFILE}" ] +then + if [ -r "${LIVE_CONFFILE}" ] + then + . "${LIVE_CONFFILE}" + else + echo "W: could not read ${LIVE_CONFFILE}, using defaults." + fi +fi + +# Source scriptlets +for SCRIPT in /usr/share/make-live/scripts/*.sh +do + . "${SCRIPT}" +done + +Help () +{ + echo "make-live - An utility for building Debian Live systems." + echo + echo "Usage: ${PROGRAM} [-a ARCHITECTURE] [-c FILE] [--clone DIRECTORY] [-d DISTRIBUTION] [--debug] [-f FILESYSTEM] [--flavour FLAVOUR] [--hook \"COMMAND...\"] [--include-image FILE|DIRECTORY] [--include-rootfs FILE|DIRECTORY] [--linux-image FLAVOUR] [--logfile FILE] [-p|--package-list FILE] [--preseed FILE] [--rootfs DIRECTORY] [-s|--section \"SECTION...\"] [--splashy [THEME]] [-t|--type TYPE] [--templates DIRECTORY] [--verbose] [LIST]" + echo + echo "Values:" + echo " Architectures: alpha, amd64, arm, hppa, i386, ia64, m68k, powerpc, s390, sparc." + echo " Distributions: oldstable, stable, testing, unstable." + echo " Filesystems: ext2, squashfs, xfs." + echo " Flavours: bootable, build, minimal, standard." + echo " Linux Images: alpha-generic, alpha-smp, alpha-legacy, amd64-k8, amd64-k8-smp, em64t-p4, em64t-p4-smp, footbridge, ixp4xx, nslu2, rpc, s3c2410, parisc, parisc-smp, parisc64, parisc64-smp, 486, 686, k7, itanium, itanium-smp, mckinley, mckinley-smp, amiga, mac, r4k-ip22, r5k-ip32, sb1-bcm91250a, sb1a-bcm91480b, r5k-cobalt, r3k-kn02, r4k-kn04, powerpc, powerpc-smp, powerpc-miboot, powerpc64, s390, s390x, sparc32, sparc64, sparc64-smp." + echo " Sections: main, contrib, non-free." + echo " Types: iso, net." + echo " Lists: gnome, gnome-core, gnome-full, kde, kde-core, kde-core-i18n, kde-extra, kde-extra-i18n, kde-full, kde-full-i18n, kde-18n, standard-i18n, x11, x11-core, xfce." + echo + echo "Options:" + echo " -h, --help: display this help and exit." + echo " -u, --usage: show usage and exit." + echo " -v, --version: output version information and exit." + echo + echo "Environment:" + echo " All settings can also be done through environment variables. Please see make-live.conf(8) for more information." + echo + echo "Report bugs to Debian Live project <http://live.debian.net>." + exit 1 +} + +Usage () +{ + echo "make-live - An utility for building Debian Live systems." + echo + echo "Usage: ${PROGRAM} [-a ARCHITECTURE] [-c FILE] [--clone DIRECTORY] [-d DISTRIBUTION] [--debug] [-f FILESYSTEM] [--flavour FLAVOUR] [--hook "COMMAND..."] [--include-image FILE|DIRECTORY] [--include-rootfs FILE|DIRECTORY] [--linux-image FLAVOUR] [--logfile FILE] [-p|--package-list FILE] [--preseed FILE] [--rootfs DIRECTORY] [-s|--section "SECTION..."] [--splashy [THEME]] [-t|--type TYPE] [--templates DIRECTORY] [--verbose] [LIST]" + echo + echo "Try \"${PROGRAM} --help\" for more information." + exit 1 +} + +Version () +{ + echo "make-live, version ${VERSION}" + echo + echo "Copyright (C) 2006 Daniel Baumann <daniel@debian.org>" + echo "Copyright (C) 2006 Marco Amadori <marco.amadori@gmail.com>" + echo + echo "This program is free software; you can redistribute it and/or modify" + echo "it under the terms of the GNU General Public License as published by" + echo "the Free Software Foundation; either version 2 of the License, or" + echo "(at your option) any later version." + echo + echo "This program is distributed in the hope that it will be useful," + echo "but WITHOUT ANY WARRANTY; without even the implied warranty of" + echo "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the" + echo "GNU General Public License for more details." + echo + echo "Homepage: Debian Live project <http://live.debian.net/>" + exit 1 +} + +Main () +{ + ARGUMENTS=`getopt --shell=sh --name="${PROGRAM}" \ + --options="a:c:d:f:p:s:t:huv" \ + --longoptions="architecture:,conffile:,clone:,distribution:,debug,filesystem:,flavour:,hook:,include-image:,include-rootfs:,linux-image:,logfile:,package-list:,preseed:,rootfs:,section:,splashy::,type:,templates:,verbose" \ + -- "${@}"` + + if [ "${?}" != "0" ] + then + echo "Terminating..." >&2 + exit 1 + fi + + eval set -- "${ARGUMENTS}" + + while true + do + case "${1}" in + -a|--architecture) + LIVE_ARCHITECTURE="${2}"; shift 2 + ;; + + -c|--conffile) + LIVE_CONFIG="${2}"; shift 2 + ;; + + --clone) + LIVE_CLONE="${2}"; shift 2 + ;; + + -d|--distribution) + LIVE_DISTRIBUTION="${2}"; shift 2 + ;; + + --debug) + LIVE_DEBUG="1" + LIVE_VERBOSE="1"; shift + ;; + + -f|--filesystem) + LIVE_FILESYSTEM="${2}"; shift 2 + ;; + + --flavour) + LIVE_FLAVOUR="${2}"; shift 2 + ;; + + --hook) + LIVE_HOOK="${2}"; shift 2 + ;; + + --include-image) + LIVE_INCLUDE_IMAGE="${2}"; shift 2 + ;; + + --include-rootfs) + LIVE_INCLUDE_ROOTFS="${2}"; shift 2 + ;; + + --linux-image) + LIVE_LINUX="${2}"; shift 2 + ;; + + --logfile) + LIVE_LOGFILE="${2}"; shift 2 + ;; + + -p|--package-list) + LIVE_PACKAGE_LIST="${2}"; shift 2 + ;; + + --preseed) + LIVE_PRESEED="${2}"; shift 2 + ;; + + --rootfs) + LIVE_ROOTFS="${2}"; shift 2 + ;; + + -s|--section) + LIVE_SECTIONS="${2}"; shift 2 + ;; + + --splashy) + LIVE_SPLASHY="1" + case "${2}" in + "") + shift 2; + ;; + *) + LIVE_SPLASHY_THEME=${2} ; shift 2 + ;; + esac + ;; + + -t|--type) + LIVE_TYPE="${2}"; shift 2 + ;; + + --templates) + LIVE_TEMPLATES="${2}"; shift 2 + ;; + + --verbose) + LIVE_VERBOSE="1"; shift + ;; + + -h|--help) + Help; shift + ;; + + -u|--usage) + Usage; shift + ;; + + -v|--version) + Version; shift + ;; + + --) + shift; break + ;; + + *) + echo "Internal error!" + exit 1 + ;; + esac + done + + LIVE_LIST="${1}" + + # Enabling debug + if [ "${LIVE_DEBUG}" ] + then + set +x + fi + + # Setting defaults + Defaults + + # Initial checks + Init + + # Bootstrap chroot + Bootstrap + + # Customize chroot + Chroot + + # Create type + if [ "${LIVE_TYPE}" ] + then + case ${LIVE_TYPE} in + iso) + LIVE_TYPE="Iso" + ;; + + net) + LIVE_TYPE="Net" + ;; + + *) + echo "You specified a wrong image type" + Help + ;; + esac + + ${LIVE_TYPE} + else + Iso + fi +} + +Main "${@}" |