From owner-svn-src-projects@FreeBSD.ORG Fri Aug 28 08:49:36 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 436E81065673; Fri, 28 Aug 2009 08:49:36 +0000 (UTC) (envelope-from rodrigc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 334948FC08; Fri, 28 Aug 2009 08:49:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n7S8naKV017413; Fri, 28 Aug 2009 08:49:36 GMT (envelope-from rodrigc@svn.freebsd.org) Received: (from rodrigc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n7S8naQk017411; Fri, 28 Aug 2009 08:49:36 GMT (envelope-from rodrigc@svn.freebsd.org) Message-Id: <200908280849.n7S8naQk017411@svn.freebsd.org> From: Craig Rodrigues Date: Fri, 28 Aug 2009 08:49:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r196611 - projects/jbuild/usr.bin/jdirdep X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Aug 2009 08:49:36 -0000 Author: rodrigc Date: Fri Aug 28 08:49:35 2009 New Revision: 196611 URL: http://svn.freebsd.org/changeset/base/196611 Log: - add some help output - add a -B flag to specify path of shared stage tree - make sure ssh-agent is running before we run svn Modified: projects/jbuild/usr.bin/jdirdep/jgetsrc Modified: projects/jbuild/usr.bin/jdirdep/jgetsrc ============================================================================== --- projects/jbuild/usr.bin/jdirdep/jgetsrc Fri Aug 28 08:41:59 2009 (r196610) +++ projects/jbuild/usr.bin/jdirdep/jgetsrc Fri Aug 28 08:49:35 2009 (r196611) @@ -1,12 +1,110 @@ #!/bin/sh +## NAME: +## jgetsrc - do a subset checkout, using jbuild dependencies +## +## SYNOPSIS: +## jgetsrc [options] [] [] ..... +## +## DESCRIPTION: +## +## Do a subset checkout. For a given set of directories [], etc. +## checkout those directories. In each directory, look in Buildfile.dep, +## and checkout the directories listed in +## SRCDIRDEP. For directories listed in DIRDEP, refer to them +## in a backing stage tree specified with -B. Create a "shared" symlink +## to the shared stage tree. +## +## OPTIONS: +## +## -h +## --help +## This manual page is emitted. +## +## -B "path" +## Specify "path" to backing stage tree for subset checkout. +## If a tree exists: +## /usr/mytree/obj +## /usr/mytree/obj/stage +## /usr/mytree/src +## +## then use -B /usr/mytree +## +## + +ShowHelp() +{ + grep ^## $0 | sed -e 's/^##//' | ${PAGER} + exit 0 +} + + +# Here is a trick to make sure that ssh-agent is running before +# we start doing a bunch of svn operations over ssh. + +# Try to list identities in ssh-agent +ssh-add -l > /dev/null 2>&1 +ret=$? +if [ $ret -eq 2 ] +then + # Couldn't open a connection to ssh-agent, + # so let's start one, and re-execute this script under ssh-agent. + exec ssh-agent $0 "$@" +elif [ $ret -eq 1 ] +then + # Couldn't find passphrase in ssh-agent, so let's + # prompt user for to add passphrase to ssh-agent + ssh-add + if [ $? -ne 0 ] + then + # If user does not have a valid ssh key in $HOME/.ssh, + # then ssh-add will fail, but not print any error messages to stdout. + echo "ERROR: ssh-add FAILED. You may see password prompt" + echo "multiple times, and possibly time out or fail." + echo "Please set up ssh-agent properly to avoid this:" + echo "" -# XX: work around ssh X11 forwarding errors + exit 1 + fi +fi + +PAGER=${PAGER:-more} +# Work around X11 forwarding errors unset DISPLAY +# parse flags +while getopts "B:h" my_opt +do + case $my_opt in + B) BACKING_TREE=$OPTARG ;; + h) ShowHelp ;; + [?]) echo "Bad Option"; ShowHelp ;; + esac +done +shift $(($OPTIND-1)) + +if [ "$1" = "--help" ] +then + ShowHelp + exit 0 +fi + +if [ -z "${BACKING_TREE}" ] +then + echo "Specify backing tree with -B" + echo "See --help" + exit 1 +fi + +if [ ! -d "${BACKING_TREE}"/obj/stage ] +then + echo "${BACKING_TREE} does not point to a directory with a valid obj/stage tree" + echo "See --help" + exit 1 +fi + dirs=$* ROOTDIR=`pwd` -DAILY=/c/jbirrell/daily/obj testdir=$ROOTDIR while [ $testdir != "/" ]; do @@ -23,10 +121,10 @@ MORELOG=$ROOTDIR/more.log cd $ROOTDIR if [ ! -d shared -a ! -h shared ]; then - ln -s $DAILY shared + echo "Creating link ${BACKING_TREE}/obj -> shared" + ln -s ${BACKING_TREE}/obj shared fi -#JSVN=svn://localhost/EPBG/u/jbirrell/build JSVN=svn+ssh://danai-29.juniper.net/c/cvs2svn/svn/repos/junos-2008/branches/jbuild rm -f $SVNLOG $MORELOG