| #!/bin/bash |
| # ----------------------------------------------------------------------------- |
| # Packages specific ONOS codebase with specific tag or branch |
| # ----------------------------------------------------------------------------- |
| |
| # Bail on any errors |
| set -e |
| |
| # Initialize environment variables |
| init() { |
| # Check if ONOS_ROOT is defined |
| [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1; |
| |
| # Setup some environmental context for developers |
| if [ -z "${JAVA_HOME}" ]; then |
| if [ -x /usr/libexec/java_home ]; then |
| export JAVA_HOME=$(/usr/libexec/java_home -v 1.8); |
| elif [ -d /usr/lib/jvm/java-8-oracle ]; then |
| export JAVA_HOME="/usr/lib/jvm/java-8-oracle"; |
| elif [ -d /usr/lib/jvm/java-8-openjdk-amd64 ]; then |
| export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"; |
| fi |
| fi |
| # Check if mvn exists |
| command -v mvn >/dev/null 2>&1 || { |
| # Following the convention, the default location of maven shows as below. |
| MAVEN=${MAVEN:-~/Applications/apache-maven-3.3.9}; |
| export PATH="$MAVEN/bin:$PATH"; |
| } |
| } |
| |
| # checkout $TAG, build project and copy it to other location |
| check_copy() { |
| CHECK_TAG=`git checkout $TAG` |
| if [[ $CHECK_TAG =~ "error" ]]; then |
| echo "There is no branch or tag named $TAG in $ONOS_ROOT" >&2 && exit 1 |
| fi |
| FOLDER=$CURRENT_PATH/onos-$TAG-blackduck |
| [ -d "$FOLDER" ] && rm -r $FOLDER |
| mkdir $FOLDER |
| mvn clean install |
| if [ $? -eq 0 ]; then |
| cp -r -a * $FOLDER; |
| if [ -d "$FOLDER/.git" ]; then |
| rm -r $FOLDER/.git |
| fi; |
| else |
| git checkout $CURRENT_TAG; |
| rm -r $FOLDER |
| echo "mvn compilation failed" |
| fi |
| } |
| |
| # Script entry point |
| CURRENT_PATH=`pwd` |
| TAG=${1:-'master'} |
| |
| init |
| cd $ONOS_ROOT |
| CURRENT_TAG=`git branch | awk '{print $2}'` |
| check_copy |
| cd $FOLDER |
| zip -rq -m $CURRENT_PATH/onos-$TAG-blackduck.zip * |
| cd .. |
| rm -r $FOLDER |
| |
| cd $ONOS_ROOT |
| git checkout $CURRENT_TAG |