#!/bin/bash # # priority: 1000 # # Rebuild the Boot CD # # Mark Huang # Copyright (C) 2006 The Trustees of Princeton University # # $Id$ # # Source function library and configuration . /etc/plc.d/functions . /etc/planetlab/plc_config # Be verbose set -x case "$1" in start) if [ "$PLC_BOOT_ENABLED" != "1" -a \ "$PLC_WWW_ENABLED" != "1" ] ; then exit 0 fi MESSAGE=$"Rebuilding Boot CD" dialog "$MESSAGE" ########## legacy myplcs - temporary code # create /etc/planetlab/nodefamily if missing [ -f /etc/planetlab/nodefamily ] || { mkdir -p /etc/planetlab ; echo "planetlab-i386" > /etc/planetlab/nodefamily ; } # move if plain directories for legacydir in /usr/share/bootcd /var/www/html/download ; do if [ -d "${legacydir}" ] && [ ! -h ${legacydir} ] ; then rm -rf ${legacydir}-legacy mv -f ${legacydir} ${legacydir}-legacy fi done ########## end # get the default nodefamily def_nodefamily=$(cat /etc/planetlab/nodefamily) # Customize the Boot CD : run build.sh on all available bootcd's shopt -s nullglob for bootcd in /usr/share/bootcd-* ; do name=$(basename $bootcd) nodefamily=$(echo $name | sed -e s,bootcd-,,) download=/var/www/html/download-${nodefamily} [ -d ${download} ] || mkdir -p ${download} pushd ${download} ${bootcd}/build.sh ${PLC_BUILD_ALL_BOOTCDS:+-a} check popd # the default: create symlinks to the actual locations if [ "${nodefamily}" == "${def_nodefamily}" ] ; then rm -rf /usr/share/bootcd ln -s /usr/share/bootcd-${nodefamily} /usr/share/bootcd rm -rf /var/www/html/download ln -s /var/www/html/download-${nodefamily} /var/www/html/download fi done result "$MESSAGE" ;; esac exit $ERRORS