#!/usr/bin/perl
#
#  This file is part of WebDyne.
#
#  This software is copyright (c) 2025 by Andrew Speer <andrew.speer@isolutions.com.au>.
#
#  This is free software; you can redistribute it and/or modify it under
#  the same terms as the Perl 5 programming language system itself.
#
#  Full license text is available at:
#
#  <http://dev.perl.org/licenses/>
#


#
#  Dump the compiled version of WebDyne HTML scripts, as stored in the cache dir
#
use strict qw(vars);
use vars   qw($VERSION);


#  Use the base module
#
use WebDyne::Util;


#  External modules
#
use Getopt::Long;
use Pod::Usage;
use Data::Dumper;
use Storable;
use FindBin qw($RealBin $Script);
$Data::Dumper::Indent=1;
$Data::Dumper::Sortkeys=1;


#  Version Info, must be all one line for MakeMaker, CPAN.
#
$VERSION='2.025';


#  Run main
#
exit ${&main(\@ARGV) || die errdump()};


#============================================================================


sub main {


    #  Get argv array ref
    #
    my $argv_ar=shift();


    #  Get command line options
    #
    my %opt;
    GetOptions(\%opt, 'help|?', 'man', 'version') ||
        pod2usage(2);
    pod2usage(-verbose => 99, -sections => 'SYNOPSIS|OPTIONS', -exitval => 1) if $opt{'help'};
    pod2usage(-verbose => 2)                                                  if $opt{'man'};
    $opt{'version'} && do {print "$Script version: $VERSION\n"; exit 0};

    #  Get srce file
    #
    my $srce_pn=$argv_ar->[0] ||
        pod2usage("$Script: no source file specified !");


    #  Retrieve
    #
    my $data_ar=Storable::retrieve($srce_pn);


    #  Dump
    #
    print Data::Dumper::Dumper($data_ar);


    #  Done
    #
    return \undef;


}

__END__# https://github.com/aspeer/pl-markpod.git 





=pod

=head1 wddump(1)

=head1 NAME

wddump - dump the data structure of a WebDyne page in the cache
    directory

=head1 SYNOPSIS

C<<<< wddump [OPTIONS] FILE >>>>

=head1 Description

The  C<<<< wddump >>>>  command displays internal the data structure of a compiled WebDyne psp file from the WebDyne cache directory. C<<<< wddump >>>>  is of limited diagnostic use - the C<<<< wdcompile >>>>  tool is more suitable for troubleshooting HTML tree errors.

C<<<< wddump >>>>  can be useful to see a picture of the final data structure looks like on complex pages built via many filters,
 combining static and dynamic blocks etc.

=head1 Options

=over

=item * B<<< -h, --help >>>

Show brief help message.

=back

=head1 Examples

C<<<< wdrender
    /var/webdyne/cache/26f2c4edc8bfd52fbde915290db96779 >>>>

Display the data structure from a compiled, cached webdyne file.

=head1 Author

Written by Andrew Speer,  <andrew@webdyne.org>

=head1 LICENSE and COPYRIGHT

This file is part of WebDyne.

This software is copyright (c) 2025 by Andrew Speer L<mailto:andrew.speer@isolutions.com.au>.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

Full license text is available at:

L<http://dev.perl.org/licenses/>

=cut