You are viewing a plain text version of this content. The canonical link for it is here.
Posted to test-cvs@httpd.apache.org by st...@apache.org on 2003/09/11 03:39:47 UTC
cvs commit: httpd-test/perl-framework/Apache-Test/lib/Apache TestConfig.pm
stas 2003/09/10 18:39:47
Modified: perl-framework/Apache-Test/lib/Apache TestConfig.pm
Log:
help users to figure out how the file was autogenerated in case there
is a template they can look at.
Revision Changes Path
1.172 +40 -16 httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm
Index: TestConfig.pm
===================================================================
RCS file: /home/cvs/httpd-test/perl-framework/Apache-Test/lib/Apache/TestConfig.pm,v
retrieving revision 1.171
retrieving revision 1.172
diff -u -u -r1.171 -r1.172
--- TestConfig.pm 13 Aug 2003 19:02:51 -0000 1.171
+++ TestConfig.pm 11 Sep 2003 01:39:47 -0000 1.172
@@ -687,9 +687,11 @@
}
sub genwarning {
- my($self, $filename) = @_;
+ my($self, $filename, $from_filename) = @_;
return unless $filename;
- my $warning = "WARNING: this file is generated, do not edit\n";
+ my $warning = "WARNING: this file is generated";
+ $warning .= " (from $from_filename)" if defined $from_filename;
+ $warning .= ", do not edit\n";
$warning .= calls_trace();
return $self->warn_style_sub_ref($filename)->($warning);
}
@@ -728,32 +730,35 @@
}
sub genfile_trace {
- my($self, $file) = @_;
+ my($self, $file, $from_file) = @_;
my $name = abs2rel $file, $self->{vars}->{t_dir};
- debug "generating $name";
+ my $msg = "generating $name";
+ $msg .= " from $from_file" if defined $from_file;
+ debug $msg;
}
sub genfile_warning {
- my($self, $file, $fh) = @_;
+ my($self, $file, $from_file, $fh) = @_;
- if (my $msg = $self->genwarning($file)) {
+ if (my $msg = $self->genwarning($file, $from_file)) {
print $fh $msg, "\n";
}
}
+# $from_file == undef if there was no templates used
sub genfile {
- my($self, $file, $nowarning) = @_;
+ my($self, $file, $from_file, $nowarning) = @_;
# create the parent dir if it doesn't exist yet
my $dir = dirname $file;
$self->makepath($dir);
- $self->genfile_trace($file);
+ $self->genfile_trace($file, $from_file);
my $fh = Symbol::gensym();
open $fh, ">$file" or die "open $file: $!";
- $self->genfile_warning($file, $fh) unless $nowarning;
+ $self->genfile_warning($file, $from_file, $fh) unless $nowarning;
$self->clean_add_file($file);
@@ -764,7 +769,7 @@
sub writefile {
my($self, $file, $content, $nowarning) = @_;
- my $fh = $self->genfile($file, $nowarning);
+ my $fh = $self->genfile($file, undef, $nowarning);
print $fh $content if $content;
@@ -808,12 +813,12 @@
sub write_perlscript {
my($self, $file, $content) = @_;
- my $fh = $self->genfile($file, 1);
+ my $fh = $self->genfile($file, undef, 1);
# shebang
print $fh "#!$Config{perlpath}\n";
- $self->genfile_warning($file, $fh);
+ $self->genfile_warning($file, undef, $fh);
print $fh $content if $content;
@@ -1140,7 +1145,7 @@
my $in = Symbol::gensym();
open($in, $file) or next;
- my $out = $self->genfile($generated);
+ my $out = $self->genfile($generated, $file);
$self->replace_vars($in, $out);
close $in;
@@ -1567,6 +1572,11 @@
appended. This trace is useful for finding what code has created the
file.
+ my $warn = $cfg->genwarning($filename, $from_filename)
+
+If C<$from_filename> is specified it'll be used in the warning to tell
+which file it was generated from.
+
genwarning() automatically recognizes the comment type based on the
file extension. If the extension is not recognized, the default C<#>
style is used.
@@ -1581,14 +1591,28 @@
genfile() creates a new file C<$file> for writing and returns a file
handle.
-A comment with a warning and calls trace is added to the top of this
-file. See genwarning() for more info about this comment.
-
If parent directories of C<$file> don't exist they will be
automagically created.
The file C<$file> and any created parent directories (if found empty)
will be automatically removed on cleanup.
+
+A comment with a warning and calls trace is added to the top of this
+file. See genwarning() for more info about this comment.
+
+ my $fh = $cfg->genfile($file, $from_file);
+
+If C<$from_filename> is specified it'll be used in the warning to tell
+which file it was generated from.
+
+ my $fh = $cfg->genfile($file, $from_file, $nowarning);
+
+If C<$nowarning> is true, the warning won't be added. If using this
+optional argument and there is no C<$from_file> you must pass undef as
+in:
+
+ my $fh = $cfg->genfile($file, undef, $nowarning);
+
=item writefile()