#!/bin/bash # ----------------------------------------------------------------------------- # Tool to create an application from scratch using ONOS Maven archetypes. # ----------------------------------------------------------------------------- [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 . $ONOS_ROOT/tools/build/envDefaults type=${1:-bundle} [ $type = app ] && archetype=bundle || archetype=$type if [ "$1" = "-?" -o "$1" = "-h" -o "$1" = "--help" ]; then echo "usage: $(basename $0) {app|bundle|ui|uitab|uitopo|cli|api} groupId artifactId version package mvn-options" echo " All arguments are optional" exit 1 fi otherOptions="" [ -n "$1" ] && shift [ -n "$1" ] && otherOptions="$otherOptions -DgroupId=$1" && shift [ -n "$1" ] && otherOptions="$otherOptions -DartifactId=$1" && dir=$1 && shift [ -n "$1" ] && otherOptions="$otherOptions -Dversion=$1" && shift [ -n "$1" ] && otherOptions="$otherOptions -Dpackage=$1" && shift mvn archetype:generate -DarchetypeGroupId=org.onosproject \ -DarchetypeArtifactId=onos-$archetype-archetype \ -DarchetypeVersion=$ONOS_POM_VERSION $otherOptions "$@" # Patch the pom.xml file to make this an app. if [ $type = app ]; then # We need to add a few lines to the pom.xml to make this an app if [ -n "$dir" ] && [ -d $dir ]; then egrep -v " ()" $dir/pom.xml > $dir/pom.app.xml mv $dir/pom.app.xml $dir/pom.xml else echo echo "IMPORTANT:" echo "To build the application, you need to uncomment the 'onos.app.name' and 'onos.app.origin' properties in the pom.xml" echo fi fi