41 |
sub new { |
sub new { |
42 |
my ($pkg, $filename, $template_name, $validation_name, $template_filename, $safe_write) = @_; |
my ($pkg, $filename, $template_name, $validation_name, $template_filename, $safe_write) = @_; |
43 |
# -e $filename or die ("$filename not found"); |
# -e $filename or die ("$filename not found"); |
44 |
-e $filename or system("touch", $filename); |
defined $filename && !-e $filename and system("touch", $filename); |
45 |
if ($template_filename) { |
if ($template_filename) { |
46 |
require $template_filename; |
require $template_filename; |
47 |
} else { |
} else { |
53 |
$out{template_name} = $template_name; |
$out{template_name} = $template_name; |
54 |
$validation_name and $out{validation_name} = $validation_name; |
$validation_name and $out{validation_name} = $validation_name; |
55 |
$out{atoms} = []; |
$out{atoms} = []; |
56 |
$safe_write and $out{timestamp} = getTimestamp($filename); |
defined $filename && $safe_write and $out{timestamp} = getTimestamp($filename); |
57 |
readConf(\%out); |
readConf(\%out); |
58 |
bless \%out, $pkg; |
bless \%out, $pkg; |
59 |
\%out; |
\%out; |
69 |
sub readConf { |
sub readConf { |
70 |
my ($out) = @_; |
my ($out) = @_; |
71 |
my $filename = $out->{filename}; |
my $filename = $out->{filename}; |
72 |
-e $filename or die ("$filename not found"); |
my @file; |
73 |
my @file = cat_($filename); |
if (-e $filename) { |
74 |
|
@file = cat_($filename); |
75 |
|
} else { |
76 |
|
@file = (); |
77 |
|
} |
78 |
parse($out, \@file); |
parse($out, \@file); |
79 |
} |
} |
80 |
|
|
182 |
} |
} |
183 |
!defined $end && $no_end_section and $end = @{$out->{atoms}}-1; |
!defined $end && $no_end_section and $end = @{$out->{atoms}}-1; |
184 |
defined $end or die "no ENDSECTION for SECTION n° $index"; |
defined $end or die "no ENDSECTION for SECTION n° $index"; |
185 |
splice(@{$out->{atoms}}, $index+1, $end-$index); |
my @ret = splice(@{$out->{atoms}}, $index+1, $end-$index); |
186 |
|
@ret; |
187 |
} |
} |
188 |
|
|
189 |
sub writeConf { |
sub writeConf { |