#!/usr/bin/env perl

# The worst offendors in bloated sym tables:

# NB - all verified to work correctly.
$maps = {
    'svx' => 'svx/util',
    'svt' => 'svtools/util',
    'svl' => 'svtools/util',
    'sfx' => 'sfx2/util',
    'xo'  => 'xmloff/util',
    'tk'  => 'toolkit/util',
    'vcl' => 'vcl/util',
    'fwk' => 'framework/util',
    'sb'  => 'basic/util',
    'so'  => 'so3/util',
    'tl'  => 'tools/util',
    'go'  => 'goodies/util'
# TOTEST:
#   'frm'
#   'basctl'
#   'dba'
#   'dbu'
 };

if (@ARGV < 3) {
    print "install-maps: /path/to/OOInstall /path/to/toolsdir <mangling> --empty\n";
    exit (1);
}

$dest = shift @ARGV;
$src = shift @ARGV;
$mangle = shift @ARGV;
$empty = shift @ARGV;

-d "$src/map" || die "Can't find $src/map: $!";

my $a;
for $a (keys %$maps) {
    my $fname = "$a-$mangle.map";
    my $s = "$src/map/$fname";
    my $d = "$dest/" . $$maps{$a};

    -d $d || die "No directory $d: $!";
    -f $s || die "Can't find $s: $!";

    $empty && print "blanking: $d\n";
    !$empty && print "installing: $s $d\n";

    my $df;

    open ($df, ">$d/$fname") || die "Can't open $d/$fname for writing: $!";
    if ($empty) {
	print $df "FOO {\n global: *;\n};\n";
    } else {
	my $sf;

	open ($sf, "$s") || die "Can't find $s: $!";
	while (<$sf>) {
	    print $df $_;
	}
	close ($sf);
    }
    close ($df);
}
