Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Aug 2009 10:25:01 +0000 (UTC)
From:      Craig Rodrigues <rodrigc@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r196613 - projects/jbuild/usr.bin/jdirdep
Message-ID:  <200908281025.n7SAP2aG022421@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rodrigc
Date: Fri Aug 28 10:25:01 2009
New Revision: 196613
URL: http://svn.freebsd.org/changeset/base/196613

Log:
  - add some help
  - make sure that ssh-agent is running before invoking svn
  - pass -F and -m flags down to svn, to facilitate specifying logs

Modified:
  projects/jbuild/usr.bin/jdirdep/jcommit

Modified: projects/jbuild/usr.bin/jdirdep/jcommit
==============================================================================
--- projects/jbuild/usr.bin/jdirdep/jcommit	Fri Aug 28 10:23:40 2009	(r196612)
+++ projects/jbuild/usr.bin/jdirdep/jcommit	Fri Aug 28 10:25:01 2009	(r196613)
@@ -2,6 +2,76 @@
 #
 # $FreeBSD$
 #
+## NAME:
+##       jcommit - run "jbuild check-commit", then commit code to repository
+##
+## SYNOPSIS:
+##       jcommit [options]
+##
+## DESCRIPTION:
+##
+##        Verify that code compiles by running "jbuild check-commit".
+##        If successful, commit code to repository.
+##
+## OPTIONS:
+##
+##        -h
+##        --help
+##           This manual page is emitted.
+##
+##        -F "file"
+##            Read commit log message from "file".
+##
+##        -m "msg"
+##            Specify commit log message "msg".
+##
+
+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 ""
+
+		exit 1
+	fi
+fi
+
+# parse flags
+while getopts "F:m:h" my_opt
+do
+	case $my_opt in
+	h) ShowHelp; exit 0;;
+	F) commit_msg_file="-F $OPTARG" ;;
+	m) commit_msg="-m $OPTARG" ;;
+	[?]) echo "Bad Option"; ShowHelp; exit 1 ;;
+	esac
+done
+shift $(($OPTIND-1))
 
 srcdir=`jbuild -V .SRCTOP test`
 
@@ -12,4 +82,4 @@ then
 fi
 echo $srcdir
 cd $srcdir
-svn commit
+svn commit ${commit_msg_file} ${commit_msg}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200908281025.n7SAP2aG022421>