lib/App/read_httpd_conf.pm
changeset 8 9fe9837ac877
child 11 478ef471fb71
equal deleted inserted replaced
3:8e064c262aa5 8:9fe9837ac877
       
     1 package App::read_httpd_conf;
       
     2 
       
     3 use 5.010;
       
     4 use strict;
       
     5 use warnings;
       
     6 use Carp;
       
     7 use File::Basename;
       
     8 use Pod::Usage;
       
     9 
       
    10 our $VERSION = '0.1';
       
    11 
       
    12 sub main {
       
    13 	shift if $_[0] eq __PACKAGE__;
       
    14 	return read_file(@_) ? 0 : 1;
       
    15 }
       
    16 
       
    17 sub read_file {
       
    18     my ($file, $basedir) = @_;
       
    19     $basedir //= dirname $file;
       
    20     open(my $fh, '<', $file)
       
    21       or croak "Can't open $file: $!\n";
       
    22     say "# 1 $file";
       
    23     while (<$fh>) {
       
    24         if (/^\s*include\s+(?<quote>["'])?(?<file>.*?)\k<quote>?\s*$/i) {
       
    25             my $file = $+{file} =~ m{^/} ? $+{file} : "$basedir/$+{file}";
       
    26             say "# $. $file INCLUDE $+{file}";
       
    27             read_file($_, $basedir) foreach (glob -d $file ? "$file/*" : $file);
       
    28             next;
       
    29         }
       
    30         print;
       
    31     }
       
    32     return 1;
       
    33 }
       
    34 
       
    35 1;