use strict;

my $debug;
# $debug = 1;

sub AnalyzeVersion {
	my ($fh, @targets) = @_;
	print "targets: @targets\n" if $debug;
	while (my $line = <$fh>) {
		for my $i (0 .. @targets-1) {
			if ($line =~ /^\s*(.*$targets[$i].*?)\s*$/o) {
				PrintVersion($targets[$i], $1);
				splice(@targets, $i, 1);
				last;
			}
		}
		my @lines = <$fh> unless @targets;
	}
}

sub PrintVersion {
	my ($target, $version) = @_;
	printf "%-10s: %s\n", $target, $version; 
}

my %languages =
	(en => 'english',
	 nl => 'dutch',
	 de => 'german',
 	 cz => 'czech',
	 pl => 'polish',
	 );

my @interfaces = grep {
	my $fmt;
	chomp($fmt = `kpsewhich cont-$_.efmt`);
	$fmt
	} grep {$_ ne 'en'} keys %languages;

open (TEX,">texexec.tex") ; 
print TEX "\\starttext test \\stoptext" ; 
close (TEX) ; 

unlink ("texexec.tui") ; 
unlink ("texexec.tuo") ; 

open (LOG, "texexec --interface=en texexec.tex |");
AnalyzeVersion(*LOG{IO}, qw(TeXExec TeXUtil pdfTeX pdfeTeX), $languages{en});
close LOG;
for my $if (@interfaces) {
	open (LOG, "texexec --once --interface=$if texexec.tex |");
	AnalyzeVersion(*LOG{IO}, $languages{$if});
	close LOG;
}

