#!/bin/bash
################################################################################
#   Copyright (C) 2024 OpenInfra Foundation Europe. 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.                                             #
################################################################################

OVERRIDEYAML=$1

ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"

source $ROOT_DIR/build-nonrtric-base

echo "Create array of helm charts"
CHART_ARRAY=()
while IFS= read -r -d $'\0'; do
    echo -e "File - $REPLY \n"
    CHART_ARRAY+=("$REPLY")
done < <(find $ROOT_DIR/../nonrtric -maxdepth 5 -name Chart.yaml -printf '%h\0')

echo "***************************************"
echo "Remove nonrtric parent chart from linting as its a conceptual visualization of Nonrtric components. This chart doesn't contain any templates & it's primarily
used for grouping of all Nonrtric components in deployment"

for dir in "${CHART_ARRAY[@]}"
do
    if [[ $dir == *"/helm/nonrtric"* ]]; then
        echo "Skip Nonrtric Parent chart"
    else
    echo "Update chart dependency for directory $dir"
    helm dep up $dir
    # Lint clearly marks errors; e.g., [ERROR]
    if [ -z $OVERRIDEYAML ]; then
        helm lint $dir > /tmp/output 2>&1
    else
        helm lint -f $OVERRIDEYAML $dir> /tmp/output 2>&1
    fi
    echo "***************************************************************************************************************"
    cat /tmp/output

    egrep -q '^Error: [0-9]* chart\(s\) linted, [0-9]* chart\(s\) failed' /tmp/output && exit 1
    echo "***************************************************************************************************************"

    if [ -z $OVERRIDEYAML ]; then
        helm template $dir > /tmp/output 2>&1
    else
	helm template -f $OVERRIDEYAML $dir > /tmp/output 2>&1
    fi
    echo "***************************************************************************************************************"
    cat /tmp/output
   sleep 1
    egrep -n '%!.\(.*=.*\)' /tmp/output && echo "Error: Type mismatch." && exit 1
    echo "***************************************************************************************************************"
    fi
done
