Perl script to build the Ferret environment XML
by
roland
—
last modified
2007-10-22 13:50
The Java code for LAS and F-TDS uses an XML file to build the Ferret execution environment. This Perl code will help you create that file.
Size 1.8 kB - File type text/x-perlFile contents
#!/usr/bin/perl
# Build Ferret environment XML stub
#
my @EnvVars = qw(FER_DIR FER_DESCR FER_DATA FER_GRIDS FER_PALETTE
FER_GO PLOTFONTS FER_EXTERNAL_FUNCTIONS DODS_CONF);
print ' <environment>',"\n";
foreach my $var (@EnvVars){
$ENV{$var} = ". " . $ENV{$var} if $var !~ /PLOTFONT/;
if ($var =~ /FER_GO|FER_PALETTE/){
$ENV{$var} = "scripts jnls jnls/insitu jnls/section " . $ENV{$var};
$ENV{$var} = $LasConfig{custom_name} . " " . $ENV{$var}
if $LasConfig{custom_name};
} elsif ($var =~ /FER_DATA/){
$ENV{$var} = "./data " . $ENV{$var};
} elsif ($var =~ /FER_DESCR/){
$ENV{$var} = "des " . $ENV{$var};
} elsif ($var =~ /DODS_CONF/){
$ENV{$var} = "dods/.dodsrc";
}
my @values = split(' ',$ENV{$var});
# Trim so ". " and "." match
foreach my $value (@values) {
$value = trim($value);
}
#Extract unique entries, see perl FAQ
undef %saw;
@saw{@values} = ();
@out = sort keys %saw; # remove sort if undesired
print ' <variable>',"\n";
print ' <name>',$var,'</name>',"\n";
foreach my $value (@out) {
$value = trim($value);
print ' <value>',$value,'</value>',"\n";
}
print ' </variable>',"\n";
}
print ' </environment>',"\n";
print '</ferret>',"\n";
sub trim($)
{
my $string = shift;
$string =~ s/^\s+//;
$string =~ s/\s+$//;
return $string;
}
Click here to get the file