summaryrefslogtreecommitdiffstats
path: root/config/drools/apps-install.sh
blob: 72f7a746950caf49ae03b1b2b9a841dc715c09ee (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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/bin/bash
#
# ============LICENSE_START=======================================================
# ONAP
# ================================================================================
# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
# ================================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============LICENSE_END=========================================================
#

# #################################
# Usage
# #################################

function usage {
    echo
    echo "Usage: $(basename $0) <application-name> <zipped-application-version> <download-directory>"
    echo "Example: $(basename $0) controlloop 1.2.0 /opt/policy/config/drools"
    echo
}

# #################################
# snapshot url computation
# #################################

function url_snapshot {
    if [[ $DEBUG == y ]]; then
        echo "-- ${FUNCNAME[0]} --"
        set -x
    fi

    APP_URL="${APP_URL}/snapshots/org/onap/policy/drools-applications/${APP_NAME}/packages/apps-${APP_NAME}/${APP_VERSION}"

    local APP_METADATA_URL="${APP_URL}/maven-metadata.xml"
    local APP_SNAPSHOT_VERSION=$(curl --silent "${APP_METADATA_URL}" | grep -Po "(?<=<value>).*(?=</value>)" | sort -V | tail -1)

    if [[ -z ${APP_SNAPSHOT_VERSION} ]]; then
        echo "ERROR: cannot compute SNAPSHOT version"
        usage
        exit 1
    fi

    APP_URL="${APP_URL}/apps-${APP_NAME}-${APP_SNAPSHOT_VERSION}.zip"
}

# #################################
# release url computation
# #################################

function url_release {
    if [[ $DEBUG == y ]]; then
        echo "-- ${FUNCNAME[0]} --"
        set -x
    fi

    APP_URL="${APP_URL}/releases/org/onap/policy/drools-applications/${APP_NAME}/packages/apps-${APP_NAME}/${APP_VERSION}/apps-${APP_NAME}-${APP_VERSION}.zip"
}

# #################################
# Main
# #################################

if [[ $DEBUG == y ]]; then
    set -x
fi

APP_NAME=$1
if [[ -z ${APP_NAME} ]]; then
    echo "ERROR: no APPLICATION NAME provided (ie. controlloop)"
    usage
    exit 1
fi

APP_VERSION=$2
if [[ -z ${APP_VERSION} ]]; then
    echo "ERROR: no APPLICATION VERSION provided"
    usage
    exit 1
fi

DOWNLOAD_DIR=$3
if [[ -z ${DOWNLOAD_DIR} ]]; then
    echo "ERROR: no DOWNLOAD DIRECTORY provided"
    usage
    exit 1
fi

if [[ ! -d ${DOWNLOAD_DIR} ]]; then
    echo "ERROR: ${DOWNLOAD_DIR} is not a directory"
    usage
    exit 1
fi

APP_GROUP_ID="org.onap.policy.drools-applications.${APP_NAME}.packages"
APP_ARTIFACT_ID="apps-${APP_NAME}"
APP_BASE_URL="https://nexus.onap.org/content/repositories"

APP_URL="${APP_BASE_URL}"

if [[ ${APP_VERSION} =~ \-SNAPSHOT$ ]]; then
    url_snapshot
else
    url_release
fi

wget "${APP_URL}" -O "${DOWNLOAD_DIR}"/apps-"${APP_NAME}".zip
if [[ $? != 0 ]]; then
    echo "ERROR: cannot download ${DOWNLOAD_DIR}/apps-${APP_NAME}.zip"
    exit 1
fi

echo "APP ${APP_NAME} stored at ${DOWNLOAD_DIR}/apps-${APP_NAME}.zip"
ls -l "${DOWNLOAD_DIR}"/apps-"${APP_NAME}".zip