Merge "Sample rApp package for ics consumer"
[nonrtric/plt/rappmanager.git] / sample-rapp-generator / generate.sh
1 #!/bin/bash
2
3 #  ============LICENSE_START===============================================
4 #  Copyright (C) 2023 Nordix Foundation. All rights reserved.
5 #  Copyright (C) 2024 OpenInfra Foundation Europe. All rights reserved.
6 #  ========================================================================
7 #  Licensed under the Apache License, Version 2.0 (the "License");
8 #  you may not use this file except in compliance with the License.
9 #  You may obtain a copy of the License at
10 #
11 #       http://www.apache.org/licenses/LICENSE-2.0
12 #
13 #  Unless required by applicable law or agreed to in writing, software
14 #  distributed under the License is distributed on an "AS IS" BASIS,
15 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 #  See the License for the specific language governing permissions and
17 #  limitations under the License.
18 #  ============LICENSE_END=================================================
19 #
20
21 if [[ $# -ne 1 ]]; then
22   echo "USAGE: $0 <rApp-resource-folder-name>"
23   exit 1
24 fi
25
26 if ! command -v zip &> /dev/null; then
27   echo "Zip command not found. Please install zip to proceed."
28   exit 1
29 fi
30
31 if ! command -v helm &> /dev/null; then
32   echo "Helm command not found. Please install helm to proceed."
33   exit 1
34 fi
35
36 DIRECTORY=${1%/}
37 PACKAGENAME="$DIRECTORY.csar"
38 HELM_DIR="$DIRECTORY/Artifacts/Deployment/HELM"
39 EXCLUDE_DIRS=()
40
41 checkHelmPackage() {
42   if [ -d "$HELM_DIR" ]; then
43     for dir in "$HELM_DIR"/*/ ; do
44       if [ -d "$dir" ]; then
45         HELM_PACKAGE_NAME=$(basename "$dir")
46         pushd "$HELM_DIR"
47         helm package "$HELM_PACKAGE_NAME"
48         popd
49         EXCLUDE_DIRS+=("*/$HELM_PACKAGE_NAME/*")
50       fi
51     done
52   else
53     echo "Helm directory $HELM_DIR doesn't exist."
54   fi
55 }
56
57 if [ -d "$DIRECTORY" ]; then
58   checkHelmPackage
59   rm -f $PACKAGENAME 2> /dev/null
60   pushd $DIRECTORY
61   zip -r ../$PACKAGENAME * $(printf " -x %s" "${EXCLUDE_DIRS[@]}")
62   popd
63   echo -e "rApp package $PACKAGENAME generated."
64 else
65   echo "Directory $DIRECTORY doesn't exist."
66 fi