#!/bin/bash

profiles(){
	_list_profiles;
	exit;
};
_list_profiles(){
	cd "$profdir";
	profiles=(*.profile);
	if [ ${#profiles[@]} -gt 0 ];then
		echo -e "$c_l";
		clear;
		slogo;
		echo -e "$y_l\n  $txt_profiles $txt_found $txt_for ( ./$(basename "$0") \"tcname\" -p=name.profile )";
		echo -e "$w_l  ======================================================\n";i=0;
		for e in "${profiles[@]}";do
			((i++));
			echo -e "$w_l  ($i) > $e";
		done;
	fi;
	echo -e "\n$rs_";
};
_save_profile(){
	if [ -f "$menudir/$_toolchainname.save" ];then
		source "$menudir/$_toolchainname.save";
		input=$("$gui" "$st_" "$bt_" "$title_" --title " -[ $1 Toolchain ]- " $ip_ "\n SAVE PROFILE\n" 0 0 "$_toolchainname");
		echo $enabled $usevars | sed -e 's/CARDREADER_//g;s/READER_//g;s/MODULE_//g;s/HAVE_//g;s/WEBIF_//g;s/WITH_//g;s/CS_//g;s/_CHARSETS//g;s/CW_CYCLE_CHECK/CWCC/g;s/SUPPORT//g;' >"$profdir/$input.profile";
	fi;
};
_load_profile(){
	if [ "$(ls -A "$profdir")" ];then
		ok=0;
		loadprofile="no";
		USESTRING=;
		_create_module_arrays;
		unset selection;
		declare -a SELECTION;
		cd "$profdir";
		p_files=(*.profile);
		i=0;
		for e in "${p_files[@]}";do
			((i++));SELECTION+=($e '<');
		done;
		pselect=$("$gui" "$st_" "$bt_" "$title_" --no-cancel --title " -[ $txt_select_profile_title ]- " --menu "\n $txt_select_profile\n\n" 0 0 "$i" "${SELECTION[@]}");
		[ $? = 255 ] && loadprofile="yes" && _toolchain_build_menu;
		"$gui" "$st_" "$bt_" "$title_" --yesno "\n$txt_confirm_profile_select\n\n$pselect\n\n" 0 0;
		response=$?;
		case "$response" in
			1)
					loadprofile="yes";
					_toolchain_build_menu;;
			255)
					loadprofile="yes";
					_toolchain_build_menu;;
		esac;
		if [ -f "$profdir/$pselect" ];then
			profile_vars=$(cat "$profdir/$pselect";);
			reset_="$("$svndir/config.sh" -D all)";
			for e in "${!USE_vars[@]}";do
				USE_vars[$e]=;
			done;
			for e1 in $profile_vars;do
				for e2 in "${!USE_vars[@]}";do
					[ "$e1" == "$e2" ] && USE_vars[$e1]="$e1=1";
				done;
				for sm in "${SHORT_MODULENAMES[@]}";do
					if [ "$e1" == "$sm" ];then
						_em_="$_em_ $(get_module_name "$sm")";
					fi;
				done;
			done;
			_set_=$("$svndir/config.sh" -E $_em_);
			USESTRING="$(echo "${USE_vars[@]}"| sed 's@USE_@@g' | sed 's@=1@@g'| tr -s ' ')";
			loadprofile="yes";
		fi;
	else
		$gui --msgbox "\n$txt_no_profile_found \n " 0 0;
	fi;
	loadprofile="no";
};
_create_native_profile(){
	[ ! -d "$tcdir/native/bin" ] && mkdir -p "$tcdir/native/bin";
	cd "$tcdir/native/bin";
	g="$(which gcc)";
	stripvar="$(which strip)";
	compiler_link="$($g -dumpmachine)-gcc";
	strip_link="$($g -dumpmachine)-strip";
	[ ! -L "$compiler_link" ] && ln -sf "$g"     "$compiler_link";
	[ ! -L "$strip_link" ]    && ln -sf "$stripvar" "$strip_link";
	cd "$tccfgdir";
	cat << EOF > native
_toolchainname="native";
default_use="USE_UTF8 USE_LIBCRYPTO";
_oscamconfdir_default="/usr/local/etc";
_oscamconfdir_custom="not_set";
_compiler="$($g -dumpmachine)-";
_tc_info="Native System Compiler \
$(gcc --version)";
_libsearchdir="/lib";
_menuname="native";
_sysroot="/";
EOF
cd "$workdir";
};
