#!/usr/bin/env perl
# PODNAME: dancer2
# ABSTRACT: Dancer2 command line interface
use strict;
use warnings;
use Dancer2::CLI;
# backward compatibility
if (@ARGV && ($ARGV[0] =~ m/^-(a|p|x|s)/ || $ARGV[0] =~ m/^--(application|path|no-check|skel)/)) {
# GetOptions and Getopt::Long::Descriptive differently treats
# cases like '-a=Test'. GetOptions returs 'Test' as value of 'a',
# while Getopt::Long::Descriptive returns '=Test' as value
foreach (@ARGV) {
s/^\-(a|p)=/-$1/;
}
unshift @ARGV, 'gen';
}
exit Dancer2::CLI->run;
__END__
=pod
=encoding UTF-8
=head1 NAME
dancer2 - Dancer2 command line interface
=head1 VERSION
version 0.203000
=head1 SYNOPSIS
dancer2 <command> [options...]
=head1 DESCRIPTION
Dancer2 is the new generation lightweight web-framework for Perl.
This tool provides nice, easily-extendable CLI interface for it.
=head2 Documentation Index
Documentation on Dancer2 is split into several manpages. Below is a
complete outline on where to go for help.
=over 4
=item * Dancer2 Tutorial
If you are new to the Dancer approach, you should start by reading
our L<Dancer2::Tutorial>.
=item * Dancer2 Manual
L<Dancer2::Manual> is the reference for Dancer2. Here you will find
information on the concepts of Dancer2 application development and
a comprehensive reference to the Dancer2 domain specific
language.
=item * Dancer2 Keywords
The keywords for Dancer2 can be found under L<DSL Keywords|Dancer2::Manual/DSL KEYWORDS>.
=item * Dancer2 Deployment
For configuration examples of different deployment solutions involving
Dancer2 and Plack, refer to L<Dancer2::Manual::Deployment>.
=item * Dancer2 Cookbook
Specific examples of code for real-life problems and some 'tricks' for
applications in Dancer can be found in L<Dancer2::Cookbook>
=item * Dancer2 Config
For configuration file details refer to L<Dancer2::Config>. It is a
complete list of all configuration options.
=item * Dancer2 Plugins
Refer to L<Dancer2::Plugins> for a partial list of available Dancer2
plugins. Note that although we try to keep this list up to date we
expect plugin authors to tell us about new modules.
=item * Dancer2 Migration guide
L<Dancer2::Manual::Migration> provides the most up-to-date instruction on
how to convert a Dancer (1) based application to Dancer2.
=back
=head1 NAME
dancer2 - Dancer2 command line interface
=head1 COMMANDS
=over
=item gen : create new Dancer2 application
=item commands : list the application's commands
=item help : display a command's help screen
=item version : display version
=back
To get detailed description of each individual command run:
dancer2 help <command>
The lastest list of available commands can be dispayed by:
dancer2 commands
=head1 COMMAND 'gen'
Helper script for providing a bootstrapping method to quickly and easily create
the framework for a new Dancer2 application.
=head3 OPTIONS
-a --application the name of your application
-p --path the path where to create your application
(current directory if not specified)
-o --overwrite overwrite existing files
-x --no-check don't check for the latest version of Dancer2
(checking version implies internet connection)
-s --skel skeleton directory
=head3 EXAMPLE
Here is an application created with dancer2:
$ dancer2 gen -a MyWeb::App
+ MyWeb-App
+ MyWeb-App/bin
+ MyWeb-App/bin/app.psgi
+ MyWeb-App/config.yml
+ MyWeb-App/environments
+ MyWeb-App/environments/development.yml
+ MyWeb-App/environments/production.yml
+ MyWeb-App/views
+ MyWeb-App/views/index.tt
+ MyWeb-App/views/layouts
+ MyWeb-App/views/layouts/main.tt
+ MyWeb-App/MANIFEST.SKIP
+ MyWeb-App/lib
+ MyWeb-App/lib/MyWeb
+ MyWeb-App/lib/MyWeb/App.pm
+ MyWeb-App/public
+ MyWeb-App/public/css
+ MyWeb-App/public/css/style.css
+ MyWeb-App/public/css/error.css
+ MyWeb-App/public/images
+ MyWeb-App/public/500.html
+ MyWeb-App/public/404.html
+ MyWeb-App/public/dispatch.fcgi
+ MyWeb-App/public/dispatch.cgi
+ MyWeb-App/public/javascripts
+ MyWeb-App/public/javascripts/jquery.js
+ MyWeb-App/t
+ MyWeb-App/t/002_index_route.t
+ MyWeb-App/t/001_base.t
+ MyWeb-App/Makefile.PL
The application is ready to serve:
$ cd MyWeb-App
$ plackup bin/app.psgi
>> Listening on 127.0.0.1:3000
== Entering the development dance floor ...
=head1 AUTHOR
This script has been written by Ivan Kruglov
<ivan.kruglov@yahoo.com> base on original dancer2
script which has been written by Sebastien Deseille
<sebastien.deseille@gmail.com> and Alexis Sukrieh
<sukria@cpan.org>.
=head1 SOURCE CODE
See L<Dancer2> for more information.
=head1 LICENSE
This module is free software and is published under the same
terms as Perl itself.
=head1 AUTHOR
Dancer Core Developers
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2016 by Alexis Sukrieh.
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