Mojolicious::Commands(3)

NAME
Mojolicious::Commands - Command line interface

SYNOPSIS
  use Mojolicious::Commands;

  my $commands = Mojolicious::Commands->new;
  push @{$commands->namespaces}, 'MyApp::Command';
  $commands->run('daemon');

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

COMMANDS
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, usually auto detected.

  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 and WebSocket server.

  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.

  prefork
  $ ./myapp.pl prefork

Start application with standalone preforking HTTP and WebSocket server.

  psgi
  $ ./myapp.pl psgi

Start application with PSGI backend, usually auto detected.

  routes
  $ ./myapp.pl routes

List application routes.

  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.

ATTRIBUTES
Mojolicious::Commands inherits all attributes from Mojolicious::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 $msg   = $commands->message;
  $commands = $commands->message('Hello World!');

Short usage message shown before listing available commands.

  namespaces
  my $namespaces = $commands->namespaces;
  $commands      = $commands->namespaces(['MyApp::Command']);

Namespaces to load commands from, defaults to "Mojolicious::Command".

  # Add another namespace to load commands from
  push @{$commands->namespaces}, 'MyApp::Command';

METHODS
Mojolicious::Commands inherits all methods from Mojolicious::Command and implements the following new ones.

  detect
  my $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.

  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');

SEE ALSO
Mojolicious, Mojolicious::Guides, <http://mojolicio.us>.