
Mojolicious::Commands - Command line interface

use Mojolicious::Commands; # Command line interface my $commands = Mojolicious::Commands->new; $commands->run(@ARGV);

Mojolicious::Commands is the interactive command line interface to the Mojolicious framework. It will automatically detect available commands in the Mojolicious::Command namespace.

These commands are available by default.
help$ mojo $ mojo help $ ./myapp.pl help
List available commands with short descriptions.
$ mojo help <command> $ ./myapp.pl help <command>
List available options for the command with short descriptions.
cgi$ ./myapp.pl cgi
Start application with CGI backend.
cpanify$ mojo cpanify -u sri -p secr3t Mojolicious-Plugin-Fun-0.1.tar.gz
Upload files to CPAN.
daemon$ ./myapp.pl daemon
Start application with standalone HTTP 1.1 server backend.
eval$ ./myapp.pl eval 'say app->home'
Run code against application.
generate$ mojo generate $ mojo generate help $ ./myapp.pl generate help
List available generator commands with short descriptions.
$ mojo generate help <generator> $ ./myapp.pl generate help <generator>
List available options for generator command with short descriptions.
generate app$ mojo generate app <AppName>
Generate application directory structure for a fully functional Mojolicious application.
generate lite_app$ mojo generate lite_app
Generate a fully functional Mojolicious::Lite application.
generate makefile$ mojo generate makefile $ ./myapp.pl generate makefile
Generate Makefile.PL file for application.
generate plugin$ mojo generate plugin <PluginName>
Generate directory structure for a fully functional Mojolicious plugin.
get$ mojo get http://mojolicio.us $ ./myapp.pl get /foo
Perform requests to remote host or local application.
inflate$ ./myapp.pl inflate
Turn templates and static files embedded in the DATA sections of your application into real files.
psgi$ ./myapp.pl psgi
Start application with PSGI backend.
routes$ ./myapp.pl routes
List application routes.
test$ mojo test $ ./myapp.pl test $ ./myapp.pl test t/fun.t
Runs application tests from the t directory.
version$ mojo version $ ./myapp.pl version
Show version information for installed core and optional modules, very useful for debugging.

Mojolicious::Commands inherits all attributes from Mojo::Command and implements the following new ones.
hint my $hint = $commands->hint;
$commands = $commands->hint('Foo!');
Short hint shown after listing available commands.
message my $message = $commands->message;
$commands = $commands->message('Hello World!');
Short usage message shown before listing available commands.
namespacesmy $namespaces = $commands->namespaces; $commands = $commands->namespaces(['Mojolicious::Commands']);
Namespaces to load commands from, defaults to Mojolicious::Command and Mojo::Command.
# Add another namespace to load commands from
push @{$commands->namespaces}, 'MyApp::Command';

Mojolicious::Commands inherits all methods from Mojo::Command and implements the following new ones.
detectmy $env = $commands->detect; my $env = $commands->detect($guess);
Try to detect environment.
run$commands->run; $commands->run(@ARGV);
Load and run commands. Automatic deployment environment detection can be disabled with the MOJO_NO_DETECT environment variable.
startMojolicious::Commands->start; Mojolicious::Commands->start(@ARGV);
Start the command line interface.
# Always start daemon and ignore @ARGV
Mojolicious::Commands->start('daemon', '-l', 'http://*:8080');
start_app Mojolicious::Commands->start_app('MyApp');
Mojolicious::Commands->start_app(MyApp => @ARGV);
Load application and start the command line interface for it.
# Always start daemon for application and ignore @ARGV
Mojolicious::Commands->start_app('MyApp', 'daemon', '-l', 'http://*:8080');
