--- trunk/mlivecdbuild/mlivecdbuild2.sh 2007/04/14 15:23:27 464 +++ trunk/mlivecdbuild/mlivecdbuild2.sh 2007/10/12 21:29:13 580 @@ -52,19 +52,19 @@ local services="$2" case ${cmd} in - add|del|default) continue;; + add|del|default) + # add given services from profile + if [[ -n ${services} ]] + then + local i + for i in ${services} + do + MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}" + done + fi + ;; *) die "custom_services: unkown command ${cmd}";; esac - - # add given services from profile - if [[ -n ${services} ]] - then - local i - for i in ${services} - do - MROOT="${CDCHROOTDIR}" rc-config ${cmd} ${i} || die "rc ${cmd} ${i}" - done - fi } add_initrc() @@ -72,7 +72,7 @@ local var="$1" # sanity checks - [ -z "${CDCHROOTDIR}" ] && die "\$CDCHROOTDIR not given." + [[ -z ${CDCHROOTDIR} ]] && die "\$CDCHROOTDIR not given." echo "${var}" >> ${CDCHROOTDIR}/.installrc || die "add_initrc() adding \$var" } @@ -82,31 +82,39 @@ local packages="$2" case ${cmd} in - install|uninstall) continue;; + install|uninstall) + if [[ -n ${packages} ]] + then + :> ${CDCHROOTDIR}/.installrc + + # respect proxies + [[ -n ${http_proxy} ]] && add_initrc "export http_proxy=${http_proxy}" + [[ -n ${ftp_proxy} ]] && add_initrc "export ftp_proxy=${ftp_proxy}" + [[ -n ${no_proxy} ]] && add_initrc "export no_proxy=${no_proxy}" + + # do not auto-start any services! + add_initrc "export MAGE_BOOTSTRAP=true" + + local i + for i in ${packages} + do + add_initrc "mage install ${i}" + done + add_initrc "mage clean" + + # now run the .installrc script + mount -t proc proc ${CDCHROOTDIR}/proc || die "mount proc" + mount -t sysfs sysfs ${CDCHROOTDIR}/sys || die "mount sys" + mount -o bind /dev ${CDCHROOTDIR}/dev || die "mount dev" + chroot ${CDCHROOTDIR} /bin/bash -i /.installrc || die "chr00ting" + umount ${CDCHROOTDIR}/dev || die "umount dev" + umount ${CDCHROOTDIR}/proc || die "umount proc" + umount ${CDCHROOTDIR}/sys || die "umount sys" + [ -f ${CDCHROOTDIR}/.installrc ] && rm ${CDCHROOTDIR}/.installrc + fi + ;; *) die "custom_packages: unkown command ${cmd}";; esac - - if [[ -n ${packages} ]] - then - - :> ${CDCHROOTDIR}/.installrc - local i - for i in ${packages} - do - add_initrc "mage install ${i}" - done - add_initrc "mage clean" - - # now run the .installrc script - mount -t proc proc ${CDCHROOTDIR}/proc || die "mount proc" - mount -t sysfs sysfs ${CDCHROOTDIR}/sys || die "mount sys" - mount -o bind /dev ${CDCHROOTDIR}/dev || die "mount dev" - chroot ${CDCHROOTDIR} /bin/bash -i /.installrc || die "chr00ting" - umount ${CDCHROOTDIR}/dev || die "umount dev" - umount ${CDCHROOTDIR}/proc || die "umount proc" - umount ${CDCHROOTDIR}/sys || die "umount sys" - [ -f ${CDCHROOTDIR}/.installrc ] && rm ${CDCHROOTDIR}/.installrc - fi } read_config() @@ -128,7 +136,7 @@ echo Preparing LiveCD ISO Image ... # fixes some issues with xfree/xorg xkb - if [ -L "${CDCHROOTDIR}/etc/X11/xkb" -a -d "/usr/X11R6/lib/X11/xkb" ] + if [[ -L ${CDCHROOTDIR}/etc/X11/xkb ]] && [[ -d /usr/X11R6/lib/X11/xkb ]] then rm ${CDCHROOTDIR}/etc/X11/xkb || die mv ${CDCHROOTDIR}/usr/X11R6/lib/X11/xkb ${CDCHROOTDIR}/etc/X11 || die @@ -279,6 +287,9 @@ HOME=/root \ TERM=$TERM PS1='\u:\w\$ ' \ PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + http_proxy=${http_proxy} \ + ftp_proxy=${ftp_proxy} \ + no_proxy=${no_proxy} \ /bin/bash -i } @@ -295,6 +306,7 @@ echo " isogen - generate the final livecd iso image" echo " dvdgen - same as isogen but creates a dvd-image" echo " all - runs all tasks to get a livecd from zero" + echo " enter - enters the rootfs of a livecd" echo echo " for example '$(basename $0) all default'" echo " creates a livecd using the default profile." @@ -325,5 +337,6 @@ generate_iso fi ;; + enter) enter_livecd ;; *|'') usage;; esac