git://git.onelab.eu
/
bootcd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- refactored marc's kupdate.sh into a new script kvariant.sh
[bootcd.git]
/
build.sh
diff --git
a/build.sh
b/build.sh
index
60e7295
..
cfce5e2
100755
(executable)
--- a/
build.sh
+++ b/
build.sh
@@
-10,6
+10,8
@@
# $Id$
#
# $Id$
#
+COMMAND=$(basename $0)
+DIRNAME=$(dirname $0)
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# defaults
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# defaults
@@
-77,22
+79,28
@@
function pop_cleanup() {
function init_and_check () {
# Change to our source directory
function init_and_check () {
# Change to our source directory
- local srcdir=$(cd $
(dirname $0)
&& pwd -P)
+ local srcdir=$(cd $
DIRNAME
&& pwd -P)
pushd $srcdir
# Root of the isofs
pushd $srcdir
# Root of the isofs
- ISOREF=$PWD/
build
+ ISOREF=$PWD/
${VARIANT}
# The reference image is expected to have been built by prep.sh (see .spec)
# we disable the initial logic that called prep.sh if that was not the case
# this is because prep.sh needs to know pldistro
if [ ! -f $ISOREF/isofs/bootcd.img -o ! -f $ISOREF/version.txt ] ; then
# The reference image is expected to have been built by prep.sh (see .spec)
# we disable the initial logic that called prep.sh if that was not the case
# this is because prep.sh needs to know pldistro
if [ ! -f $ISOREF/isofs/bootcd.img -o ! -f $ISOREF/version.txt ] ; then
- echo "You have to run prep.sh prior to calling $0 - exiting"
+ echo "Could not find isofs and version.txt in $ISOREF"
+ if [ "$VARIANT" == "build" ] ; then
+ echo "You have to run prep.sh prior to calling $COMMAND"
+ else
+ echo "You need to create your variant image, see kvariant.sh"
+ fi
+ echo "Exiting .."
exit 1
fi
# build/version.txt written by prep.sh
exit 1
fi
# build/version.txt written by prep.sh
- BOOTCD_VERSION=$(cat
build
/version.txt)
+ BOOTCD_VERSION=$(cat
${VARIANT}
/version.txt)
if [ -f /etc/planetlab/plc_config ] ; then
# Source PLC configuration
if [ -f /etc/planetlab/plc_config ] ; then
# Source PLC configuration
@@
-116,7
+124,7
@@
function init_and_check () {
# it seems that this feature has not been used nor tested in a long time, use with care
usage() {
# it seems that this feature has not been used nor tested in a long time, use with care
usage() {
- echo "Usage:
build.sh
[OPTION]..."
+ echo "Usage:
$COMMAND
[OPTION]..."
echo " -f plnode.txt Node to customize CD for (default: none)"
echo " -t 'types' Build the specified images (default: $DEFAULT_TYPES)"
echo " NOTE: mentioning 'serial' as part of the type is not supported anymore"
echo " -f plnode.txt Node to customize CD for (default: none)"
echo " -t 'types' Build the specified images (default: $DEFAULT_TYPES)"
echo " NOTE: mentioning 'serial' as part of the type is not supported anymore"
@@
-130,6
+138,7
@@
usage() {
echo " can be a full path"
echo " -o output-name The full name of the generated file"
echo " -C custom-dir Custom directory"
echo " can be a full path"
echo " -o output-name The full name of the generated file"
echo " -C custom-dir Custom directory"
+ echo " -V variant Use a variant - see kvariant.sh"
echo " -n Dry run - mostly for debug/test purposes"
echo " -k Add additional parameters to the kargs.txt file"
echo " -h This message"
echo " -n Dry run - mostly for debug/test purposes"
echo " -k Add additional parameters to the kargs.txt file"
echo " -h This message"
@@
-143,7
+152,7
@@
function parse_command_line () {
# init
TYPES=""
# Get options
# init
TYPES=""
# Get options
- while getopts "f:t:as:SO:o:C:k:nh" opt ; do
+ while getopts "f:t:as:SO:o:C:
V:
k:nh" opt ; do
case $opt in
f) NODE_CONFIGURATION_FILE=$OPTARG ;;
t) TYPES="$TYPES $OPTARG" ;;
case $opt in
f) NODE_CONFIGURATION_FILE=$OPTARG ;;
t) TYPES="$TYPES $OPTARG" ;;
@@
-153,6
+162,7
@@
function parse_command_line () {
O) OUTPUT_BASE="$OPTARG" ;;
o) OUTPUT_NAME="$OPTARG" ;;
C) CUSTOM_DIR="$OPTARG" ;;
O) OUTPUT_BASE="$OPTARG" ;;
o) OUTPUT_NAME="$OPTARG" ;;
C) CUSTOM_DIR="$OPTARG" ;;
+ V) VARIANT="$OPTARG" ;;
k) KARGS_STR="$KARGS_STR $OPTARG" ;;
n) DRY_RUN=true ;;
h|*) usage ;;
k) KARGS_STR="$KARGS_STR $OPTARG" ;;
n) DRY_RUN=true ;;
h|*) usage ;;
@@
-161,6
+171,7
@@
function parse_command_line () {
# use defaults if not set
[ -z "$TYPES" ] && TYPES="$DEFAULT_TYPES"
# use defaults if not set
[ -z "$TYPES" ] && TYPES="$DEFAULT_TYPES"
+ [ -z "$VARIANT" ] && VARIANT="build"
[ "$CONSOLE_INFO" == "default" ] && CONSOLE_INFO=$SERIAL_CONSOLE
# check TYPES
[ "$CONSOLE_INFO" == "default" ] && CONSOLE_INFO=$SERIAL_CONSOLE
# check TYPES
@@
-297,7
+308,7
@@
EOF
fi
# build/passwd copied out by prep.sh
fi
# build/passwd copied out by prep.sh
- sed -e "s@^root:[^:]*:\(.*\)@root:$ROOT_PASSWORD:\1@"
build
/passwd >$OVERLAY/etc/passwd
+ sed -e "s@^root:[^:]*:\(.*\)@root:$ROOT_PASSWORD:\1@"
${VARIANT}
/passwd >$OVERLAY/etc/passwd
# Install node configuration file (e.g., if node has no floppy disk or USB slot)
if [ -f "$NODE_CONFIGURATION_FILE" ] ; then
# Install node configuration file (e.g., if node has no floppy disk or USB slot)
if [ -f "$NODE_CONFIGURATION_FILE" ] ; then
@@
-532,7
+543,7
@@
EOF
# generate pl_rsysinit
cat > etc/rc.d/init.d/pl_rsysinit <<EOF
#!/bin/sh
# generate pl_rsysinit
cat > etc/rc.d/init.d/pl_rsysinit <<EOF
#!/bin/sh
-# generated by
build.sh
+# generated by
$COMMAND
echo -n "pl_rsysinit: preparing /etc and /var for pl_sysinit..."
mount -t tmpfs -orw,size=${msize}M,mode=1777 tmpfs /tmp
mkdir -p /tmp/root
echo -n "pl_rsysinit: preparing /etc and /var for pl_sysinit..."
mount -t tmpfs -orw,size=${msize}M,mode=1777 tmpfs /tmp
mkdir -p /tmp/root
@@
-683,10
+694,10
@@
function build_types () {
####################
function main () {
####################
function main () {
- init_and_check
-
parse_command_line "$@"
parse_command_line "$@"
+ init_and_check
+
echo "* Building images for $FULL_VERSION_STRING"
# Do not tolerate errors
set -e
echo "* Building images for $FULL_VERSION_STRING"
# Do not tolerate errors
set -e