| #!/bin/bash | 
 | # Gan Shun Lim (ganshun@gmail.com) | 
 | # Copyright 2016 Google Inc | 
 |  | 
 | # Use local branch name as the default topic unless overridden | 
 | GERRIT_TOPIC=`git symbolic-ref -q --short HEAD` | 
 |  | 
 | GERRIT_REMOTE=gerrit | 
 | GERRIT_PUSH_COMMAND="git push $GERRIT_REMOTE HEAD:refs/for/master" | 
 | GERRIT_REVIEWERS_LINE="%" | 
 |  | 
 | REVIEWERS="" | 
 | CC="" | 
 |  | 
 |  | 
 | if [ $# -ne 1 ] && [ $# -ne 3 ] && [ $# -ne 5 ] && [ $# -ne 7 ] | 
 | then | 
 | 	echo "Usage: adt mail [-m reviewer1,reviewer2...] [-cc cc1,cc2...] [-t topic]" | 
 | 	echo "Other functionalities are not yet supported" | 
 | 	exit -1 | 
 | fi | 
 |  | 
 | if [ $1 != "mail" ] | 
 | then | 
 | 	echo "Only mail functionality is supported right now. Please do adt mail." | 
 | 	exit -1 | 
 | fi | 
 |  | 
 | OLDIFS=$IFS | 
 | I=2 | 
 | while [ $I -lt $# ] | 
 | do | 
 | 	if [ ${!I} = "-t" ] | 
 | 	then | 
 | 		# Doesn't support multiple topics. not sure what gerrit will do. | 
 | 		(( I++ )) | 
 | 		GERRIT_TOPIC=${!I} | 
 | 		(( I++ )) | 
 | 	elif [ ${!I} = "-m" ] | 
 | 	then | 
 | 		(( I++ )) | 
 | 		IFS=$IFS"," | 
 | 		for R in ${!I} | 
 | 		do | 
 | 			IFS=$OLDIFS | 
 | 			if [ $GERRIT_REVIEWERS_LINE = "%" ] | 
 | 			then | 
 | 				GERRIT_REVIEWERS_LINE="${GERRIT_REVIEWERS_LINE}r=$R" | 
 | 			else | 
 | 				GERRIT_REVIEWERS_LINE="${GERRIT_REVIEWERS_LINE},r=$R" | 
 | 			fi | 
 | 		done | 
 | 		(( I++ )) | 
 | 	elif [ ${!I} = "-cc" ] | 
 | 	then | 
 | 		(( I++ )) | 
 | 		IFS=$IFS"," | 
 | 		for R in ${!I} | 
 | 		do | 
 | 			IFS=$OLDIFS | 
 | 			if [ $GERRIT_REVIEWERS_LINE = "%" ] | 
 | 			then | 
 | 				GERRIT_REVIEWERS_LINE="${GERRIT_REVIEWERS_LINE}cc=$R" | 
 | 			else | 
 | 				GERRIT_REVIEWERS_LINE="${GERRIT_REVIEWERS_LINE},cc=$R" | 
 | 			fi | 
 | 		done | 
 | 		(( I++ )) | 
 | 	else | 
 | 		echo "Unsupported flag ${!I}." | 
 | 		echo "Usage: adt mail [-m reviewer1,reviewer2...] [-cc cc1,cc2...] [-t topic]" | 
 | 		exit -1 | 
 | 	fi | 
 | done | 
 |  | 
 | if [ "$GERRIT_TOPIC" != "" ] | 
 | then | 
 | 	# Append topic | 
 | 	GERRIT_PUSH_COMMAND="$GERRIT_PUSH_COMMAND/$GERRIT_TOPIC" | 
 | fi | 
 |  | 
 | if [ $GERRIT_REVIEWERS_LINE != "%" ] | 
 | then | 
 | 	eval "$GERRIT_PUSH_COMMAND$GERRIT_REVIEWERS_LINE" | 
 | else | 
 | 	eval $GERRIT_PUSH_COMMAND | 
 | fi | 
 |  | 
 | if [ "$?" -ne 0 ] | 
 | then | 
 | 	echo "Error occurred during git push. Please make sure that your remote for gerrit exists, and that GERRIT_REMOTE in this script is pointing to the correct remote." | 
 | 	exit -1 | 
 | fi |