=pod

=head1 NAME

Mojolicious::Command::secret - Create application secrets() consisting of random bytes

=head1 MOJOLICIOUS VERSION

If your Mojolicious version is less than 4.63 then you must
L<use version 0.02|https://metacpan.org/release/SHAW/Mojolicious-Command-secret-0.02>
of this module.

=head1 DESCRIPTION

Tired of manually creating and adding secrets? Me too! Use this command to create secrets
and automatically add them to your C<Mojolicous> or C<Mojolicious::Lite> application:

 ./script/your_app secret
 ./lite_app secret

B<This will modify the appropriate application file>, though existing secrets will not be overridden
unless the C<-f> option is used.

It is assumed that your file contains UTF-8 data and that you use C<$self> or C<app> to refer
to your application instance.

If you do not want to automatically add secrets to your application use the C<mojo secret> command or
the C<-p> option and the secrets will be printed to C<STDOUT> instead:

 mojo secret
 ./script/your_app secret -p

=head1 OPTIONS

 -c, --count     N              Generate N secrets. Defaults to 1.
 -f, --force                    Overwrite an existing secret. Defaults to 0.
 -g, --generator MODULE=method  Module & method to generate the secret. The method must
                                accept an integer argument. Defaults to Crypt::URandom=urandom.
                                and Crypt::OpenSSL::Random=random_bytes
 -p, --print                    Print the secret, do not add it to your application.
 -s, --size      SIZE           Number of bytes to use. Defaults to 32.

Default options can be added to the C<MOJO_SECRET_OPTIONS> environment variable.

=head1 SEE ALSO

L<Crypt::URandom>, L<Crypt::OpenSSL::Random>

=head1 AUTHOR

(c) 2012 Skye Shaw

=head1 LICENSE

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