test -f $BUILDEND && . $BUILDEND ||
test -f $BUILDEND && source $BUILDEND ||
true;
echo '===============================================' ;
" < /dev/null > "$LOGDIR/$logfile" 2>&1 &
}
error(){
echo "$@" 1>&2
usage_and_exit 1
}
find_file(){
#语法:
# find_file file program-and-args
#如果找到,返回0,如果找不到返回1
if test -r "$1"
then
PAR="$2"
PARFILE="$1"
return 0
else
return 1
fi
}
find_package(){
#语法:
# find_package package-x.y.z
base=`echo "$1" | sed -e 's/[-_][.]*[0-9].*$//'`
PAR=
PARFILE=
for srcdir in $SRCDIRS
do
test "$srcdir" = "." && srcdir="`pwd`"
for subdir in "$base" ""
do
#如果此列表有改变,则更新build_one()内的包设置
find_file $srcdir/$subdir/$1.tar.gz "tar xfz" && return
find_file $srcdir/$subdir/$1.tar.Z "tar xfz" && return
find_file $srcdir/$subdir/$1.tar "tar xf" && return
find_file $srcdir/$subdir/$1.tar.bz2 "tar xfj" && return
find_file $srcdir/$subdir/$1.tar.tgz "tar xfz" && return
find_file $srcdir/$subdir/$1.tar.zip "unzip -q" && return
find_file $srcdir/$subdir/$1.jar "jar xf" && return
done
done
}
set_userhosts(){
#语法:
# set_userhosts file(s)
for u in "$@"
do
if test -r "$u"
then
ALTUSERHOSTS="$ALTUSERHOSTS $u"
elif test -r "$BUILDHOME/$u"
then
ALTUSERHOSTS="$ALTUSERHOSTS $BUILDHOME/$u"
else
error "File not found: $u"
fi
done
}
usage(){
cat <<EOF
Usage:
$PROGRAM [ --? ]
[ --all "..." ]
[ --check "..." ]
[ --configure "..." ]
[ --environment "..." ]
[ --help ]
[ --logdirectory dir ]
[ --on "[user@]host[:dir][,envfile] ..." ]
[ --source "dir ..." ]
[ --userhosts "file(s)" ]
[ --version ]
package(s)
EOF
}
usage_and_exit(){
usage
exit $1
}
version(){
echo "$PROGRAM version $VERSION"
}
warning(){
echo "$@" 1>&2
EXITCODE=`expr $EXITCODE + 1 `
}
ALLTARGETS=
altlogdir=
altsrcdirs=
ALTUSERHOSTS=
BUILDBEGIN=./.build/begin
BUILDEND=./.build/end
BUILDHOME=$HOME/.build
CHECKTARGETS=check
CONFIGUREDIR=.
CONFIGUREFLAGS=










