#!/bin/bash

function usage() {
    echo "usage:  _packaging_get_dependencies LAYER_NAME MODULE_BRANCH MFEXT_BRANCH"
    echo "   => return the list of minimal dependencies of the given layer"
    echo "      (including system dependencies read in .system_dependencies files)"
}

. "${MFEXT_HOME}/lib/bash_utils.sh"

if test "${1:-}" = "--help"; then
    usage
    exit 0
fi
if test "${2:-}" = ""; then
    usage
    exit 1
fi

# We unload all layers
layer_unload root@mfext >/dev/null 2>&1

# We load the given layer
layer_load_without_optional "${1}@${MFMODULE_LOWERCASE}" >/dev/null 2>&1

LABELS=$(layers --raw --loaded-filter=yes |awk '{print $1;}')

( echo "["
NEED_COMMA=0
for LABEL in ${LABELS} default@${MFMODULE_LOWERCASE}; do
    NAME=$(echo "${LABEL}" |awk -F '@' '{print $1;}')
    MOD=$(echo "${LABEL}" |awk -F '@' '{print $2;}')
    HOM=$(get_layer_home "${LABEL}")
    V=$(cat "${HOM}/.mfextaddon" 2>/dev/null)
    if test "${V}" = ""; then
        V="no"
    fi
    if test "${NEED_COMMA}" = "1"; then
        echo ","
        NEED_COMMA=0
    fi
    if test "${MOD}" = "mfext"; then
        BRANCH="$3"
    else
        BRANCH="$2"
    fi
    RPM="metwork-${MOD}-layer-${NAME}-${BRANCH}"
    if test "${NAME}" != "${1}" -o "${MOD}" != "${MFMODULE_LOWERCASE}"; then
        echo "{\"name\": \"${NAME}\", \"label\": \"${LABEL}\", \"module\": \"${MOD}\", \"addon\": \"${V}\", \"home\": \"${HOM}\", \"branch\": \"${BRANCH}\", \"rpm\": \"${RPM}\", \"type\": \"metwork\"}"
        NEED_COMMA=1
    fi
    if test -f "${HOM}/.system_dependencies"; then
        for L in $(cat "${HOM}/.system_dependencies"); do
            N=$(echo "${L}" |awk -F '@' '{print $1;}')
            OSS=$(echo "${L}" |awk -F '@' '{print $2;}' |sed 's/,/","/g')
            if test "${NEED_COMMA}" = "1"; then
                echo ","
                NEED_COMMA=0
            fi
            echo -n "{\"name\": \"${N}\", \"type\": \"system\", \"module\": \"${MOD}\", \"label\": \"${L}\", \"oss\": ["
            echo -n "\""
            echo -n "${OSS}"
            echo -n "\""
            echo "]}"
            NEED_COMMA=1
        done
    fi
done
echo "]" ) |json_reformat
