mirror of
https://github.com/opennetworkinglab/onos.git
synced 2025-10-14 17:01:02 +02:00
can be installed separately from the ONOS source or ONOS runtime. Change-Id: I0f8a7e2739010f34d913d79ab40390aef3fc07e2
48 lines
1.8 KiB
Bash
Executable File
48 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# -----------------------------------------------------------------------------
|
|
# Tool to create an application from scratch using ONOS Maven archetypes.
|
|
# -----------------------------------------------------------------------------
|
|
|
|
# If ONOS_HOME is set, respect its value.
|
|
# If ONOS_HOME is not set (e.g. in the init or service environment),
|
|
# set it based on this script's path.
|
|
ONOS_HOME=${ONOS_HOME:-$(cd $(dirname $0)/.. >/dev/null 2>&1 && pwd)}
|
|
|
|
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
|