diff options
Diffstat (limited to 'framework/src/onos/tools/dev/bin/onos-create-app')
-rwxr-xr-x | framework/src/onos/tools/dev/bin/onos-create-app | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/framework/src/onos/tools/dev/bin/onos-create-app b/framework/src/onos/tools/dev/bin/onos-create-app new file mode 100755 index 00000000..65b00b65 --- /dev/null +++ b/framework/src/onos/tools/dev/bin/onos-create-app @@ -0,0 +1,42 @@ +#!/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|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 |