blob: 0430a58be44d14998c33bbfffcc247d05e2382e7 [file] [log] [blame]
#!/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
set -e
mvn archetype:generate -DarchetypeCatalog=local,remote \
-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