#!perl -w

use strict;
use FindBin;

my $HOME = "$FindBin::Bin/..";

my $root_dir  = "$HOME/xul-node/xul/jslib";
my $NS6_lib   = "$root_dir/../NS6lib.js";
my $NS6_tests = "$root_dir/../NS6lib_tests.js";

join_files($NS6_lib,   get_class_names());
join_files($NS6_tests, get_test_names()) if $ARGV[0];

sub join_files {
	my ($lib, $files) = @_;
	open G, ">$lib" or die "Can't open $lib: $!";
	my $out = slurp_files(@$files);
	print G $out;
	close G;
}

sub slurp_files {
	my (@files) = @_;
	my $in = "";
	foreach my $file (@files) {
		(my $fileName = "$root_dir/$file.js") =~ s|_|/|g;
		open F, $fileName or die "Can't open $fileName: $!";
		$in .= "\n". join('', <F>). "\n";
		close F;
	}
	return $in;
}

sub get_class_names {[qw(
	Util_BootStrap
	Client_ServerResponse
	Client_ServerProxy
	Client_Runner
	Client_Application
)]}

sub get_test_names {[ @{get_class_names()}, qw(
	Test_AssertionFailedError
	Test_Failure
	Test_Assert
	Test_Case
	Test_Result
	Test_Suite
	Test_Runner
	Test_tests_Assert
	Test_tests_Suite
	Test_tests_AllTests
	Util_tests_BootStrap
	Util_tests_AllTests
	Client_tests_ServerProxy
	Client_tests_AllTests
	AllTests
)]}

