#!/usr/bin/env perl
package yfrom;
# ABSTRACT: Build YAML from another format (like JSON or CSV)
$yfrom::VERSION = '0.016';
use ETL::Yertl;
use Pod::Usage::Return qw( pod2usage );
use Getopt::Long qw( GetOptionsFromArray );
use ETL::Yertl::Command::yfrom;

$|++; # no buffering

sub main {
    my ( $class, @argv ) = @_;
    my %opt;
    GetOptionsFromArray( \@argv, \%opt,
        'help|h',
        'version',
    );
    return pod2usage(0) if $opt{help};
    if ( $opt{version} ) {
        print "yfrom version $yfrom::VERSION (Perl $^V)\n";
        return 0;
    }

    eval {
        ETL::Yertl::Command::yfrom->main( @argv, \%opt );
    };
    if ( $@ ) {
        return pod2usage( "ERROR: $@" );
    }
    return 0;
}

exit __PACKAGE__->main( @ARGV ) unless caller(0);

__END__

=pod

=head1 NAME

yfrom - Build YAML from another format (like JSON or CSV)

=head1 VERSION

version 0.016

=head1 SYNOPSIS

    yfrom <format> [<file>...]

    yfrom -h|--help|--version

=head1 DESCRIPTION

This program takes a stream of documents in the given format (on STDIN or file arguments),
and prints them as YAML.

=head1 ARGUMENTS

=head2 format

The format to read. Currently supported formats: JSON, CSV

=head2 <file>

A file to read. The special file "-" refers to STDIN. If no files are
specified, read STDIN.

=head1 OPTIONS

=head2 -h | --help

Show this help document.

=head2 --version

Print the current yfrom and Perl versions.

=head2 --no-trim

For CSV documents, trim any leading whitespace from each cell. Some CSV documents are
formatted to line up the commas for easy visual scanning. By default, yfrom will remove
leading whitespace in a cell. Setting C<--no-trim> will disable trimming.

=head1 AUTHOR

Doug Bell <preaction@cpan.org>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Doug Bell.

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

=cut
