8 use File
::Slurp
qw(write_file);
11 use List
::MoreUtils
qw(zip);
12 use Params
::Util
qw(_ARRAY);
15 use WWW
::Mechanize
::Script
::Util
qw(:ALL);
16 use WWW
::Mechanize
::Script
;
20 my @options = ( "input-files=s@", "output-files=s@", "output-pattern=s{2}", "help|h", "usage|?" );
22 GetOptions
( \
%opts, @options ) or pod2usage
(2);
24 defined( $opts{help
} )
32 defined( $opts{usage
} ) and $opts{usage
} and pod2usage
(1);
33 opt_required_all
( \
%opts, qw(input-files) );
34 opt_exclusive
( \
%opts, qw(output-files output-pattern) );
35 opt_required_one
( \
%opts, qw(output-files output-pattern) );
36 _ARRAY
( $opts{"input-files"} )
37 and _ARRAY
( $opts{"output-files"} )
38 and scalar( @
{ $opts{"input-files"} } ) != scalar( @
{ $opts{"output-files"} } )
41 -message
=> "Count of --input-files and --output-files doesn't match",
47 _ARRAY
( $opts{"input-files"} )
48 ? zip
( @
{ $opts{"input-files"} }, @
{ $opts{"output-files"} } )
51 $f =~ s/$opts{"output-pattern"}->[0]/$opts{"output-pattern"}->[1]/;
53 } @
{ $opts{"input-files"} };
54 my %cfg = load_config
();
56 my $coder = JSON
->new();
57 _ARRAY
( $cfg{wtscript_extensions
} )
58 and Config
::Any
::WTScript
->extensions( @
{ $cfg{wtscript_extensions
} } );
59 foreach my $filename ( @
{ $opts{"input-files"} } )
61 my @script_files = find_scripts
( \
%cfg, $filename );
62 my $scripts = Config
::Any
->load_files(
64 files
=> [@script_files],
69 @script_files = keys %{$scripts};
70 scalar(@script_files) > 1
73 -message
=> "filename $filename is ambigious: " . join( ", ", @script_files ),
77 scalar(@script_files) < 1
78 and next; # file not found or not parsable ...
79 # merge into default and previous loaded config ...
80 my $json = $coder->pretty->encode( $scripts->{ $script_files[0] } );
81 write_file
( $in2out{$filename}, $json );
88 check_web2 - allows checking of website according to configured specifications
92 check_web2 is intended to be used to check web-sites according a configuration.
93 The configuration covers the request configuration (including agent part) and
94 check configuration to specify check parameters.
96 See C<WWW::Mechanize::Script> for details about the configuration options.
100 This script is created as successor of an check_web script of a nagios setup
101 based on HTTP::WebCheck. This module isn't longer maintained, so decision
102 was made to create a new environment simulating the old one basing on
107 $ check_web2 --file domain1/site1.json
108 $ check_web2 --file domain2/site1.yml
110 $ check_web2 --file domain1/site2.wts
114 Jens Rehsack, C<< <rehsack at cpan.org> >>
118 Please report any bugs or feature requests to C<bug-www-mechanize-script at rt.cpan.org>, or through
119 the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=WWW-Mechanize-Script>. I will be notified, and then you'll
120 automatically be notified of progress on your bug as I make changes.
124 You can find documentation for this module with the perldoc command.
126 perldoc WWW:Mechanize::Script
128 You can also look for information at:
132 =item * RT: CPAN's request tracker (report bugs here)
134 L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=WWW-Mechanize-Script>
136 =item * AnnoCPAN: Annotated CPAN documentation
138 L<http://annocpan.org/dist/WWW-Mechanize-Script>
142 L<http://cpanratings.perl.org/d/WWW-Mechanize-Script>
146 L<http://search.cpan.org/dist/WWW-Mechanize-Script/>
150 =head1 ACKNOWLEDGEMENTS
152 =head1 LICENSE AND COPYRIGHT
154 Copyright 2012 Jens Rehsack.
156 This program is free software; you can redistribute it and/or modify it
157 under the terms of either: the GNU General Public License as published
158 by the Free Software Foundation; or the Artistic License.
160 See http://dev.perl.org/licenses/ for more information.