X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=bootstrap;h=3245670d8d9a55e0d3f17e1d474b4e4e12ca31c1;hb=d7e8c16a89fa44734b2a995a83a38b4acf6a83cf;hp=45a4b7969d7e3b880b71c9872e0c7bb6c1bb9d1f;hpb=01f19e973bfc7636b2ca9c54482d3ccf490ed7dd;p=chaz%2Ftar diff --git a/bootstrap b/bootstrap index 45a4b79..3245670 100755 --- a/bootstrap +++ b/bootstrap @@ -24,33 +24,59 @@ # Parse options. -for option; do +for option +do case $option in --help) - echo "$0: usage: $0 [--gnulib-srcdir=DIR]" + echo "$0: usage: $0 [--gnulib-srcdir=DIR][--cvs-auth=AUTH-METHOD][--cvs-user=USERNAME]" exit;; --gnulib-srcdir=*) GNULIB_SRCDIR=`expr "$1" : '--gnulib-srcdir=\(.*\)'`;; + --cvs-auth=*) + CVS_AUTH=`expr "$1" : '--cvs-auth=\(.*\)'`;; + --cvs-user=*) + CVS_USER=`expr "$1" : '--cvs-user=\(.*\)'`;; *) echo >&2 "$0: $option: unknown option" exit 1;; esac done - echo "$0: Bootstrapping CVS tar..." +build_cvs_prefix() { + CVS_PREFIX=:${1}: + if [ "${2}" != - ]; then + CVS_PREFIX=${CVS_PREFIX}${2}@ + fi +} # Get gnulib files. -echo "$0: getting gnulib files..." - case ${GNULIB_SRCDIR--} in -) if [ ! -d gnulib ]; then + echo "$0: getting gnulib files..." + trap exit 1 2 13 15 trap 'rm -fr gnulib; exit 1' 0 - cvs -q -d savannah.gnu.org:/cvsroot/gnulib co gnulib || exit + + case "${CVS_AUTH--}" in + -) : ${CVS_RSH:?} + CVS_PREFIX="";; + pserver) build_cvs_prefix $CVS_AUTH ${CVS_USER:-anoncvs};; + gserver|server) + build_cvs_prefix $CVS_AUTH ${CVS_USER--};; + ext) : ${CVS_RSH:?} + build_cvs_prefix $CVS_AUTH ${CVS_USER--};; + *) echo "$0: Unknown CVS access method" >&2 + exit 1;; + esac + if [ "${CVS_AUTH--}" = "pserver" ]; then + cvs -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/gnulib login || exit + fi + cvs -q -d ${CVS_PREFIX}subversions.gnu.org:/cvsroot/gnulib co gnulib || exit + trap 0 fi GNULIB_SRCDIR=gnulib