#!/usr/bin/env bash
set -e

# require yq
command -v yq >/dev/null 2>&1 || {
    echo >&2 "yq (https://github.com/mikefarah/yq) is not installed. Aborting."
    exit 1
}

# Absolute path of repository
repository=$(git rev-parse --show-toplevel)
charts_folder="${repository}/charts"
charts_summary_file="${charts_folder}"/README.md

# Gather all charts using the common library, excluding common-test
incubator_charts=$(find "${charts_folder}/incubator" -name "Chart.yaml" | sort)
stable_charts=$(find "${charts_folder}/stable" -name "Chart.yaml" | sort)

echo "# Helm charts overview" > "${charts_summary_file}"

echo "### Stable charts:" >> "${charts_summary_file}"
echo "| Chart | Description |" >> "${charts_summary_file}"
echo "| ----- | ----------- |" >> "${charts_summary_file}"
for i in ${stable_charts[@]}
do
    chart_data=($(yq eval '.name, .description' "$i"))
    chart_name="${chart_data[0]}"
    chart_description="${chart_data[@]:1}"
    echo "| [${chart_name}](stable/${chart_name}) | ${chart_description} |" >> "${charts_summary_file}"
done

echo "### Incubator charts:" >> "${charts_summary_file}"
echo "| Chart | Description |" >> "${charts_summary_file}"
echo "| ----- | ----------- |" >> "${charts_summary_file}"
for i in ${incubator_charts[@]}
do
    chart_data=($(yq eval '.name, .description' "$i"))
    chart_name="${chart_data[0]}"
    chart_description="${chart_data[@]:1}"
    echo "| [${chart_name}](incubator/${chart_name}) | ${chart_description} |" >> "${charts_summary_file}"
done