#!/bin/bash

_fill_tc_array(){
	unset AVAI_TCLIST
	unset INST_TCLIST
	tcempty=0

	cd "$tccfgdir"
	if [ "$(ls -A "$tccfgdir")" ]
	then
		AVAI_TCLIST=(*)
	else
		printf "\n error in _fill_tc_array()\n please report error\n\n"
		exit
	fi

	cd "$tcdir"
	if [ "$(ls -A "$tcdir")" ]
	then
		tmp_tclist=(*)
		for t in "${tmp_tclist[@]}"
		do
			for a in "${AVAI_TCLIST[@]}"
			do
				[ "$t" == "$a" ] && INST_TCLIST+=($t)
			done
		done
	else
		tcempty=1
	fi

	if [ "$tcempty" == "1" ]
	then
		MISS_TCLIST=$(echo ${AVAI_TCLIST[@]} |sort)
	else
		MISS_TCLIST=(
		$(for el in $(diff_array AVAI_TCLIST[@] INST_TCLIST[@])
		do
			printf "$el\n"
		done |sort)
		)
	fi
}

_create_module_arrays(){
	i=0
	for e in $(echo "$addons" | sed 's/WEBIF_//g;s/WITH_//g;s/MODULE_//g;s/CS_//g;s/HAVE_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g';)
	do
		SHORT_ADDONS+=($e)
		SHORT_MODULENAMES+=($e)
	done

	for e in ${protocols//MODULE_/}
	do
		SHORT_PROTOCOLS+=($e)
		SHORT_MODULENAMES+=($e)
	done

	for e in ${readers//READER_/}
	do
		SHORT_READERS+=($e)
		SHORT_MODULENAMES+=($e)
	done

	for e in ${card_readers//CARDREADER_/}
	do
		SHORT_CARD_READERS+=($e)
		SHORT_MODULENAMES+=($e)
	done

	for e in $addons $protocols $readers $card_readers
	do
		ALL_MODULES_LONG+=($e)
	done

	for e in "${SHORT_MODULENAMES[@]}"
	do
		INTERNAL_MODULES["$e"]="${ALL_MODULES_LONG[i]}"
		((i++))
	done
}

diff_array(){
	awk 'BEGIN{RS=ORS=" "}{NR==FNR?a[$0]++:a[$0]--}END{for(k in a)if(a[k])print k}' <(echo -n "${!1}") <(echo -n "${!2}")
}