Enhancing cell-build to provide option to use shared cache.

Change-Id: I8ddd43cfec6bd0c6ce9acbbaa18ab0bad53307f0
diff --git a/tools/dev/bin/cell-build b/tools/dev/bin/cell-build
index 85b4467..8169ab0 100755
--- a/tools/dev/bin/cell-build
+++ b/tools/dev/bin/cell-build
@@ -6,19 +6,23 @@
 # Check environment
 [ -z "$OCN" ] && echo "Cell environment not established" && exit 1
 
-runTests=""
+runTests=false
+useCache=false
 
-while getopts b:t?h o; do
+while getopts b:ct?h o; do
     case "$o" in
         b) branch=$OPTARG;;
+        c) useCache=true;;
         t) runTests=true;;
-        *) echo "usage: cell-build [-b branch] [-t] [commitHash]" >&2; exit 1;;
+        *) echo "usage: cell-build [-b branch] [-ct] [commitHash]" >&2; exit 1;;
     esac
 done
 
 let OPC=$OPTIND-1
 shift $OPC
 
+! git status &>/dev/null && echo "Not in a git workspace. Exiting..." && exit $?
+
 # Check arguments and environment
 branch=${branch:-origin/master}
 baseCommit=${1:-$(git log | grep $branch | head -n1 | cut -d\  -f2)}
@@ -41,17 +45,19 @@
     remoteCommit=\$(git log -n 1 | head -n1 | cut -d\  -f2)
     if [ "\$remoteCommit" != "$baseCommit" ]; then
         git checkout master
-        git pull
+        git pull --no-stat
         git checkout $baseCommit
     fi
 
     # Apply the patch if necessary
     [ -s /tmp/$baseCommit.patch ] && git apply /tmp/$baseCommit.patch
 
+    # Promote the common bazelrc file to enable running against the cells cache
+    [ $useCache = true ] && cp ~/.bazelrc .bazelrc
+
     # Run the build (neutralizing known environment mutations in SSH sessions)
     set -e
     SHLVL=1 SSH_CLIENT=0 SSH_CONNECTION=0 bazel build onos
-    if [ $runTests = true ]; then
+    [ $runTests = true ] && \
         bazel query 'tests(//...)' | SHLVL=1 SSH_CLIENT=0 SSH_CONNECTION=0 xargs bazel test
-    fi
 "