# HG changeset patch # User heiko # Date 1394277884 -3600 # Node ID 8e064c262aa5f14464e003235a36f1322318832f # Parent 514fe7b72d6575917f35bf6ecfa988f9b6712621 fixed inclusion of relative paths diff -r 514fe7b72d65 -r 8e064c262aa5 read-httpd-conf --- 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+(?["'])?(?.*?)\k?\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]));