reguire gnupg1 on f>=31; sense the system to use gpg1 when installed
[bootmanager.git] / build.sh
index 6362ca6..2e8c440 100755 (executable)
--- a/build.sh
+++ b/build.sh
 # Marc E. Fiuczynski <mef@cs.princeton.edu>
 # Copyright (C) 2004-2007 The Trustees of Princeton University
 #
-# $Id: build.sh,v 1.5 2006/04/03 19:40:55 mlhuang Exp $
-# $URL$
-#
 
 # Source PLC configuration
-. /etc/planetlab/plc_config
+source /etc/planetlab/plc_config
 
 # Do not tolerate errors
 set -e
@@ -28,19 +25,16 @@ BOOTSTRAPDIR="/boot"
 # Change to our source directory
 cd $(dirname $0)
 
-# Translate configuration file
-sed -i -e "s|SUPPORT_FILE_DIR=.*|SUPPORT_FILE_DIR=$BOOTSTRAPDIR|" source/configuration
-
 # Source bootmanager configuration
-. $srcdir/source/configuration
+source source/configuration
 
 # Write boot script. nodeconfig/boot/index.php retrieves the contents of this script
 # after checking the node id
 
-BMDIR=/var/www/html/bootmanager
+BMDIR=/var/www/html/boot
 mkdir -p $BMDIR
 
-DEST_SCRIPT="$BMDIR/${DEPLOYMENT}_bootmanager.sh"
+DEST_SCRIPT="$BMDIR/bootmanager_${DEPLOYMENT}.sh"
 # Remove the old version or any sym links prior to re-writing
 rm -f ${DEST_SCRIPT}
 rm -f ${DEST_SCRIPT}.sgn
@@ -58,8 +52,8 @@ fi
 sed -i -e "s@^MONITOR_SERVER.*@MONITOR_SERVER=$MONITOR_SERVER@" source/configuration
 
 install -D -m 644 $PLC_BOOT_CA_SSL_CRT source/cacert/$PLC_BOOT_HOST/cacert.pem
-if [ -f $PLC_MONITOR_CA_SSL_CRT ] ; then 
-       install -D -m 644 $PLC_MONITOR_CA_SSL_CRT source/cacert/$PLC_MONITOR_HOST/cacert.pem
+if [ -f "$PLC_MONITOR_CA_SSL_CRT" ] ; then
+       install -D -m 644 "$PLC_MONITOR_CA_SSL_CRT" source/cacert/$PLC_MONITOR_HOST/cacert.pem
 fi
 
 # Replace the default debug SSH key
@@ -69,10 +63,15 @@ fi
 
 # Add python code from the following packages
 # make sure they are in the 'Requires' header of the specfile
-required_rpms="pypcilib pyplnet monitor-runlevelagent"
-extra_libs=`mktemp -d "/tmp/.bootmanager.XXXXXX"`
+required_rpms="pypcilib pyplnet"
+extra_libs=$(mktemp -d "/tmp/.bootmanager.XXXXXX")
 mkdir $extra_libs/source
-cp -p $(rpm -ql $required_rpms | grep -v '\.py[co]$') $extra_libs/source
+for entry in $(rpm -ql $required_rpms | grep -v '\.py[co]$'); do
+    if [ -d $entry ]; then
+        continue
+    fi
+    cp -p $entry $extra_libs/source
+done
 
 
 ########## create the bootmanager script
@@ -82,20 +81,18 @@ cat <<EOF > $DEST_SCRIPT
 # PlanetLab Boot Manager $VERSION
 #
 # DO NOT EDIT. Generated by $USER@$HOSTNAME at
-# $(date) 
+# $(date)
 #
 
 # Do not tolerate errors
 set -e
 
-UUDECODE=/usr/bin/uudecode
-
-($UUDECODE | /bin/tar -C /tmp -xj) << _EOF_
+(/usr/bin/uudecode | /bin/tar -C /tmp -xj) << _EOF_
 EOF
 
 
 # Embed the uuencoded tarball in the script
-tar -cj -C $srcdir source/ -C $extra_libs source/ | uuencode -m - >> $DEST_SCRIPT
+tar -cj source/ -C $extra_libs source/ | uuencode -m - >> $DEST_SCRIPT
 
 # wrap up the script
 echo '_EOF_' >> $DEST_SCRIPT
@@ -116,4 +113,3 @@ if [ -f "$PLC_ROOT_GPG_KEY" -a -f "$PLC_ROOT_GPG_KEY_PUB" ] ; then
 else
     echo "Warning: Remember to sign $PWD/$DEST_SCRIPT!" >&2
 fi
-