#!/usr/bin/env perl

use strict;
use warnings;

use Faker;
use Venus::Args;
use Venus::Opts;
use Venus::Data;

use Venus 'catch';

my $opts = Venus::Opts->new(specs => ['locales|l=s@', 'repeats|r=i']);
my $args = Venus::Args->new($opts->unused);

my $repeats = $opts->get('repeats');
my $locales = $opts->get('locales');
my $method = $args->get(0);

if (!$method) {
  print("\n", Venus::Data->new($0)->string('head1', qr/synopsis/i), "\n\n");
}
else {
  catch {print(Faker->new($locales || 'en-us')->$method, "\n") for (1..($repeats || 1))} && die "Data generation failed: Unknown command '$method'";
}

exit(0);

=encoding utf8

=head1 NAME

faker

=head1 ABSTRACT

Fake Data Generation Tool

=head1 SYNOPSIS

  Faker - Fake Data Generator

  Usage: faker <command> [options]

  Commands:
  address_lines     Generate address lines
  company_name      Generate company name
  company_tagline   Generate company tagline
  lorem_paragraphs  Generate lorem paragraphs
  lorem_sentences   Generate lorem sentences
  lorem_words       Generate lorem words
  person_name       Generate person name
  software_name     Generate software name
  software_semver   Generate software semver
  software_version  Generate software version
  telephone_number  Generate telephone number
  user_login        Generate user login
  user_password     Generate user password
  ...

  Options:
  -l --locales      Specify the locale(s), e.g. en-us, ja-jp, es-es
  -r --repeats      Specify the number of repetitions, e.g. 10

=head1 DESCRIPTION

This tool lets you generate faker data, using the L<Faker> framework.

=head1 AUTHOR

Al Newkirk, C<awncorp@cpan.org>

=head1 LICENSE

See L<Faker>

=cut
