CHROOTDIR=/root/bin
# plc chroot runs in UTC
-date=$(date -u +'%Y.%m.%d')
+DATE=$(date -u +'%Y.%m.%d')
### in the root context
function do_chroot () {
}
function create_base () {
- BASE=${TAG/HEAD/`date +%Y.%m.%d`}
i=
while ! mkdir ${BASE}${i} 2>/dev/null ; do
[ -z ${i} ] && BASE=${BASE}.
echo BASE=$BASE
echo TAG=$TAG
echo DISTRO=$DISTRO
+ echo MAKEVARS="${MAKEVARS[@]}"
+ echo MAKEOPTS="${MAKEOPTS[@]}"
}
function usage () {
echo "This is revision $REVISION"
echo "Supported options"
echo " -v verbose"
+ echo " -b BASE"
+ echo " -u : uses directory given as BASE as is, even if already exists"
+ echo " -e : exits (does nothing) if BASE already exists"
+ echo " -f DISTRO"
echo " -d CVSROOT"
echo " -r TAG"
echo " -m MAILTO"
- echo " -f DISTRO"
- echo " -b BASE"
echo " -s MAKEVAR=value - spaces in value are not supported"
echo " -n passed to make"
exit 1
if [ -d /plc/devel/data ] ; then
do_chroot "$@"
else
+ while getopts "vd:r:m:f:b:s:uenh" opt ; do
MAKEVARS=()
MAKEOPTS=()
- while getopts "vd:r:m:f:b:s:nh" opt ; do
case $opt in
v) set -x ;;
d) CVSROOT=$OPTARG ;;
m) MAILTO=$OPTARG ;;
f) DISTRO=$OPTARG ;;
b) BASE=$OPTARG ;;
+ u) USEOLD=true ;;
+ e) EXITIFOLD=true ;;
s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
h|*) usage ;;
MAKETARGETS="$@"
cd $ROOT
- ### determine BASE
- # if specified, use it, otherwise create from date
- if [ -z "$BASE" ] ; then
- create_base
- else
+ ### set BASE if unspecified, from TAG
+ [ -z "$BASE" ] && BASE=${TAG/HEAD/${DATE}}
+
+ if [ -n "$EXITIFOLD" -a -d "$BASE" ] ; then
+ echo "$COMMAND: -e : exits on existing base directory $BASE"
+ BUILD=$ROOT/$BASE
+ failure
+ exit 1
+ fi
+
+ if [ -n "$USEOLD" ] ; then
use_base $BASE
+ else
+ # base is not the date, it's probably a tag or whatever
+ if [ "$BASE" != "$DATE" ] ; then
+ [ -d "$BASE" ] && BASE=${BASE}-${DATE}
+ fi
+ create_base
fi
BUILD=$ROOT/$BASE