equal
deleted
inserted
replaced
|
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; |