aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/tools/dev/bin/onos-create-app
blob: 65b00b65f9857ed4909518a545e4c218206d6d41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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