blob: f234e5dd079556f0d718ff8bcb2f06449f638980 [file] [log] [blame]
#!/usr/bin/perl
use FindBin;
sub get_hlvm_dir
{
my $hlvmdir = $FindBin::Bin;
my $index = rindex($hlvmdir, "/utils/bin");
return substr($hlvmdir,0,$index);
}
sub process_file
{
my $preamble = shift(@_);
my $input = shift(@_);
my $output = shift(@_);
my $line = "";
my $hlvmdir = get_hlvm_dir();
chomp($MODULE_PATH = `pwd`);
$MODULE_PATH = substr($MODULE_PATH,rindex($MODULE_PATH,"/hlvm/")+6);
$MODULE = $MODULE_PATH;
$MODULE =~ s|\/|_|g;
($sec,$min,$hour,$mday,$mon,$year) = localtime(time);
local $YEAR = $year + 1900;
local $DATE = sprintf("%4d/%02d/%02d", $YEAR, $mon + 1, $mday );
local $TIME = sprintf("%02d:%02d:%02d", $hour, $min, $sec);
local $AUTHOR = $ENV{XPS_AUTHOR};
if ( length($AUTHOR) < 5 )
{
$AUTHOR = $ENV{AUTHOR};
if (length($AUTHOR) < 5)
{
$AUTHOR = getpwuid($<);
if (length($AUTHOR) < 1 )
{
$AUTHOR = $ENV{USER};
if (length($AUTHOR) < 1)
{
$AUTHOR = $ENV{LOGNAME};
if (length($AUTHOR) < 1)
{
$AUTHOR = "Author Unknown";
}
}
}
}
}
local $NAMESPACE = "HLVM_$MODULE";
local $module_header = ucfirst($MODULE);
local $MODULE_INCLUDE = "<hlvm/$MODULE/${module_header}.h>";
local $CLASS_INCLUDE = "<hlvm/$MODULE/${CLASS}.h>";
local $NAMESPACE_UC = uc( $NAMESPACE );
local $CLASS_UC = uc( $CLASS );
local $HEADER_UC = uc( $HEADER );
open ( OUT,"> $output" ) || die ("Couldn't open $output for writing\n");
for $infile ( $preamble , $input )
{
open ( IN, "< $infile" ) || die ("Couldn't open $infile for reading\n");
while ( defined($line = <IN>) )
{
$line =~ s/\%ID\%/\$Id\$/g;
$line =~ s/\%LOG\%/\$Log\$/g;
$line =~ s/\%AUTHOR%/$AUTHOR/g;
$line =~ s/\%USER%/$USER/g;
$line =~ s/\%DATE%/$DATE/g;
$line =~ s/\%TIME%/$TIME/g;
$line =~ s/\%YEAR%/$YEAR/g;
$line =~ s/\%MODULE%/$MODULE/g;
$line =~ s/\%NAMESPACE\%/$NAMESPACE/g;
$line =~ s/\%NAMESPACE_UC\%/$NAMESPACE_UC/g;
$line =~ s/\%CLASS\%/$CLASS/g;
$line =~ s/\%CLASS_UC\%/$CLASS_UC/g;
$line =~ s/\%MODULE_PATH\%/$MODULE_PATH/g;
$line =~ s/\%MODULE\%/$MODULE/g;
$line =~ s/\%HEADER\%/$HEADER/g;
$line =~ s/\%HEADER_UC\%/$HEADER_UC/g;
$line =~ s/\%STYLE\%/$STYLE/g;
$line =~ s/\%CLASS_INCLUDE\%/$CLASS_INCLUDE/g;
$line =~ s/\%MODULE_INCLUDE\%/$MODULE_INCLUDE/g;
$line =~ s/\%TOKEN_LIST\%/$TOKEN_LIST/g;
$line =~ s/\%SCHEMA_NAME\%/$SCHEMA_NAME/g;
print OUT $line || die ("Couldn't write to OUT file\n");
}
close IN;
};
close OUT;
}
1;