freebsd-ports/Tools/portbuild/scripts/setupnode
Kris Kennaway 1b934126ce * Clean up this script a bit
* Require an additional <tmpdir> argument so the client knows where its
  temp directory is.
* Mount the portbuild directory readonly via NFS, and copy files that
  way instead of via scp, which has too much overhead
2002-03-25 00:20:34 +00:00

60 lines
1.5 KiB
Bash
Executable file

#!/bin/sh
#
# Script run on the clients, to set them up in preparation for building
# packages. This includes setting up parts of the /var/portbuild
# directory hierarchy, the portbuild script and the bindist.tar file
# for populating the build chroots.
nocopy=0
if [ "x$1" = "x-nocopy" ]; then
nocopy=1
shift
fi
if [ $# != 5 ]; then
echo "usage: $0 [-nocopy] master portbuilddir branch tmpdir md5"
exit 1
fi
master=$1
pb=$2
branch=$3
tmpdir=$4
md5master=$5
if [ $(echo $(/sbin/mount | grep "${pb}/.*read-only" | awk '{print $3}' | wc -c)) != 0 ]; then
/sbin/umount -f $(/sbin/mount | grep "${pb}/.*read-only" | awk '{print $3}')
fi
#cd ${pb}
#fs=$(df . | sed -e '1d' | awk '{print $6}')
#mount -u -w $fs
cd ${tmpdir}
mkdir -p ${tmpdir}/${branch}/chroot
# Clean up the tmpdir
# XXX Should try and unmount old nfs filesystems first
if ! rm -rf ${tmpdir}/${branch}/chroot/* >/dev/null 2>&1; then
chflags -R noschg ${tmpdir}/${branch}/chroot/*
rm -rf ${tmpdir}/${branch}/chroot/*
fi
killall make fetch >/dev/null 2>&1
mkdir -p ${tmpdir}/${branch}/tarballs
if [ "$nocopy" = 0 ]; then
if [ -f ${tmpdir}/${branch}/tarballs/bindist.tar ]; then
md5=$(/sbin/md5 ${tmpdir}/${branch}/tarballs/bindist.tar | awk '{print $4}')
fi
if [ "${md5}" = "${md5master}" ]; then
echo "not copying bindist to $(hostname -s) since it is already up to date"
else
echo "copying bindist to $(hostname -s)"
cp -p ${pb}/${branch}/tarballs/bindist.tar ${tmpdir}/${branch}/tarballs
fi
fi
#mount -u -r $fs