--- a/read-httpd-conf Wed Feb 05 12:49:02 2014 +0100
+++ b/read-httpd-conf Sat Mar 08 12:24:44 2014 +0100
@@ -3,18 +3,18 @@
use strict;
use warnings;
use Carp;
+use File::Basename;
sub read_file {
- my $file = shift;
+ my ($file, $basedir) = @_;
open(my $fh, '<', $file)
or croak "Can't open $file: $!\n";
say "# 1 $file";
while (<$fh>) {
if (/^\s*include\s+(?<quote>["'])?(?<file>.*?)\k<quote>?\s*$/i) {
-
- #print "#$file:$.:$_";
+ my $file = $+{file} =~ m{^/} ? $+{file} : "$basedir/$+{file}";
say "# $. $file INCLUDE $+{file}";
- read_file($_) foreach (glob -d $+{file} ? "$+{file}/*" : $+{file});
+ read_file($_, $basedir) foreach (glob -d $file ? "$file/*" : $file);
next;
}
print;
@@ -23,4 +23,4 @@
die "$0: Need file name (httpd.conf)\n"
unless @ARGV;
-read_file(shift);
+read_file($ARGV[0], dirname($ARGV[0]));