aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/tools/dev/bin/onos-create-app
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/tools/dev/bin/onos-create-app')
-rwxr-xr-xframework/src/onos/tools/dev/bin/onos-create-app42
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