#!/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|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
