Separate download of the ONOS buck plugin from the overall buck package

Change-Id: I75b35365aa6e9a80f32552d71dd2b874267157e5
diff --git a/tools/build/onos-buck b/tools/build/onos-buck
index 70c4414..e11f1de 100755
--- a/tools/build/onos-buck
+++ b/tools/build/onos-buck
@@ -10,6 +10,9 @@
 
 # onos-yang-tools buck plugin version
 YANG_VER="2.4.1"
+ONOS_PLUGIN_VER="1.0.2"
+MAVEN_BASE="https://repo1.maven.org/maven2"
+MAVEN_ONOSPROJECT="$MAVEN_BASE/org/onosproject"
 
 [  "-U" = "$1" ] && shift && FORCE_UPDATE=True
 
@@ -36,7 +39,7 @@
     else
         echo "SHA cannot be verified"
     fi
-    unzip cache/$BUCK_FILE
+    unzip -qq cache/$BUCK_FILE
     # Kill buckd
     ps -ef | egrep buckd | grep -v egrep | cut -c7-11 | xargs kill 2>/dev/null || :
     rm -rf $ROOT_DIR/buck-out
@@ -47,6 +50,7 @@
 YANG_PLUGIN_CACHE="cache/onos-yang-compiler-buck-plugin-$YANG_VER.jar"
 if hash mvn 2>/dev/null; then
   if [[ $YANG_VER = *"-SNAPSHOT" ]] || [ ! -f "$YANG_PLUGIN_CACHE" ]; then
+    echo "Updating Yang plugin $YANG_VER..." >&2
     ARTIFACT="org.onosproject:onos-yang-compiler-buck-plugin:$YANG_VER"
     mvn org.apache.maven.plugins:maven-dependency-plugin:3.0.2:copy \
         -Dartifact=$ARTIFACT \
@@ -55,20 +59,21 @@
   fi
 else
   if [ ! -f "$YANG_PLUGIN_CACHE" ]; then
+    echo "Updating Yang plugin $YANG_VER..." >&2
     if [[ $YANG_VER = *"-SNAPSHOT" ]]; then
       echo "mvn command must be installed to handle SNAPSHOT version"
       exit 1
     fi
 
     curl -o "$YANG_PLUGIN_CACHE" \
-      -L https://repo1.maven.org/maven2/org/onosproject/onos-yang-compiler-buck-plugin/$YANG_VER/onos-yang-compiler-buck-plugin-$YANG_VER.jar
+      -L $MAVEN_ONOSPROJECT/onos-yang-compiler-buck-plugin/$YANG_VER/onos-yang-compiler-buck-plugin-$YANG_VER.jar
   fi
 
   if [[ $YANG_VER != *"-SNAPSHOT" ]] && hash shasum 2>/dev/null; then
     SHA=$(shasum $YANG_PLUGIN_CACHE | cut -d' ' -f1)
     if [ ! -f "$YANG_PLUGIN_CACHE".sha1 ]; then
       curl -o "$YANG_PLUGIN_CACHE".sha1 \
-        -L https://repo1.maven.org/maven2/org/onosproject/onos-yang-compiler-buck-plugin/$YANG_VER/onos-yang-compiler-buck-plugin-$YANG_VER.jar.sha1
+        -L $MAVEN_ONOSPROJECT/onos-yang-compiler-buck-plugin/$YANG_VER/onos-yang-compiler-buck-plugin-$YANG_VER.jar.sha1
     fi
     YANG_PLUGIN_SHA=$(cat "$YANG_PLUGIN_CACHE".sha1)
     if [ "$SHA" != "$YANG_PLUGIN_SHA" ]; then
@@ -79,7 +84,34 @@
     echo "SHA verification skipped"
   fi
 fi
-install -Cv "$YANG_PLUGIN_CACHE" plugins/yang.jar
+install -Cv "$YANG_PLUGIN_CACHE" plugins/yang.jar >/dev/null
+
+# Fetch & install onos buck plugin
+
+ONOS_PLUGIN_CACHE="cache/onos-buck-plugin-$ONOS_PLUGIN_VER.jar"
+
+if [ ! -f "$ONOS_PLUGIN_CACHE" ]; then
+  echo "Updating ONOS plugin $ONOS_PLUGIN_VER..." >&2
+  curl -o "$ONOS_PLUGIN_CACHE" \
+    -L $MAVEN_ONOSPROJECT/onos-buck-plugin/$ONOS_PLUGIN_VER/onos-buck-plugin-$ONOS_PLUGIN_VER.jar
+fi
+
+
+if hash shasum 2>/dev/null; then
+  SHA=$(shasum $ONOS_PLUGIN_CACHE | cut -d' ' -f1)
+  if [ ! -f "$ONOS_PLUGIN_CACHE".sha1 ]; then
+    curl -o "$ONOS_PLUGIN_CACHE".sha1 \
+         -L $MAVEN_ONOSPROJECT/onos-buck-plugin/$ONOS_PLUGIN_VER/onos-buck-plugin-$ONOS_PLUGIN_VER.jar.sha1
+  fi
+  ONOS_PLUGIN_SHA=$(cat "$ONOS_PLUGIN_CACHE".sha1)
+  if [ "$SHA" != "$ONOS_PLUGIN_SHA" ]; then
+    echo "ERROR: Downloaded SHA ($SHA) did not match expected SHA ($ONOS_PLUGIN_SHA)" &&
+      rm -f $ONOS_PLUGIN_CACHE $ONOS_PLUGIN_CACHE.sha1 && exit 1
+  fi
+else
+    echo "SHA verification skipped"
+fi
+install -Cv "$ONOS_PLUGIN_CACHE" plugins/onos.jar >/dev/null
 
 popd > /dev/null
 
diff --git a/tools/build/push-buck-plugin b/tools/build/push-buck-plugin
new file mode 100755
index 0000000..97df2e5
--- /dev/null
+++ b/tools/build/push-buck-plugin
@@ -0,0 +1,31 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Builds and uploads an ONOS buck plugin release
+# -----------------------------------------------------------------------------
+
+if [ $# -ne 1 ]; then
+    echo "Usage: push-buck-plugin version"
+    exit 1
+fi
+
+PLUGIN_VERSION="$1"
+PLUGIN_FILE="buck-out/gen/tools/build/buck-plugin/onos.jar"
+UPLOAD_BASE="https://oss.sonatype.org/service/local/staging/deploy/maven2/org/onosproject/onos-buck-plugin/$PLUGIN_VERSION"
+
+# Build the buck plugin
+onos-buck build //tools/build/buck-plugin:onos
+
+# Make the signature file
+gpg --armor --detach-sig $PLUGIN_FILE
+
+# Make the MD5 checksum file
+md5 -q $PLUGIN_FILE >$PLUGIN_FILE.md5
+
+# Make the SHA1 checksum file
+( shasum $PLUGIN_FILE | cut -d' ' -f1 ) > $PLUGIN_FILE.sha1
+
+curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar
+curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE.asc $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar.asc
+curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE.md5 $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar.md5
+curl -v -u "$SONATYPE_USER:$SONATYPE_PASSWORD" --upload-file $PLUGIN_FILE.sha1 $UPLOAD_BASE/onos-buck-plugin-$PLUGIN_VERSION.jar.sha1
+