名前

Mojolicious::Commands - コマンドラインインターフェース

Mojolicious::CommandsMojoliciousフレームワークへの対話式のコマンドラインインターフェースです。Mojolicious::Command名前空間の中にある利用できるコマンドを自動的に検知します。

これはコアのコマンドです。いつでも有効になっていて、 これをフォークして新しいコマンドの構築を学ぶための、よいサンプルになっています。

デフォルトで利用可能なコマンドの一覧についてはMojolicious::Commandsコマンドの項目をみてください。

使い方

Usage: APPLICATION COMMAND [OPTIONS]

mojo version
mojo generate lite_app
./myapp.pl daemon -m production -l http://*:8080
./myapp.pl get /foo
./myapp.pl routes -v

Tip: CGI and PSGI environments can be automatically detected very often and
work without commands.

オプション (for all commands):
-h, --help          特定のコマンドのより多くの情報を取得する
--home <path>   アプリケーションのホームディレクトリのパス
デフォルトはMOJO_HOMEの値か、自動的に検知される
-m, --mode <name>   アプリケーションのオペレーティングモード。デフォルトは
MOJO_MODE/PLACK_ENVの値か「development」

コマンド

以下のコマンドがデフォルトで利用できます。

cgi

$ script/myapp cgi

CGIをバックエンドにしてアプリケーションを開始するためにMojolicious::Command::cgiを使用します。 通常は自動的に検知されます。

cpanify

$ mojo cpanify -u sri -p secr3t Mojolicious-Plugin-Fun-0.1.tar.gz

ファイルのCPANへのアップロードするためにMojolicious::Command::Author::cpanifyを使用する。

daemon

$ ./myapp.pl daemon

スタンドアロンのHTTP 1.1サーバーをバックエンドにして アプリケーションを開始するためにMojolicious::Command::daemonを使用します。

eval

$ ./myapp.pl eval 'say app->home'

アプリケーションのコードを実行しするためにMojolicious::Command::evalを使用します。

generate

$ mojo generate
$ mojo generate help
$ ./myapp.pl generate help

Mojolicious::Command::Author::generate::appを使って、短い説明と共に利用できる生成コマンドをを一覧表示します。

$ mojo generate help <generator>
$ ./myapp.pl generate help <generator>

短い説明と共に生成コマンドの利用できるオプションを一覧表示します。

generate app

$ mojo generate app <AppName>

完全な機能を備えたMojoliciousアプリケーションのために アプリケーションのディレクトリ構造を生成するためにMojolicious::Command::Author::generate::appを使用します。

generate lite_app

$ mojo generate lite_app

完全な機能を持つMojolicious::Liteアプリケーションを生成するためにMojolicious::Command::Author::generate::lite_app を使用します。

generate makefile

$ mojo generate makefile

アプリケーションのためにMakefile.PLファイルを生成するために、 Mojolicious::Command::Author::generate::makefileを使用します。

generate plugin

$ mojo generate plugin <PluginName>

完全な機能を持つMojoliciousプラグインのディレクトリ構造を生成するために、 Mojolicious::Command::Author::generate::pluginを使用します。

get

$ mojo get http://mojolicio.us
$ script/myapp get /foo

リモートホストあるいはローカルアプリケーションにGETリクエストを実行するために、 Mojolicious::Command::getを使用します。

help

$ mojo
$ mojo help
$ ./myapp.pl help

短い説明と共に利用できるコマンドを一覧表示します。

$ mojo help <command>
$ ./myapp.pl help <command>

短い説明とともにコマンドの利用できるオプションを一覧表示します。

inflate

$ myapp.pl inflate

DATAセクションの埋め込みファイルを 本当のファイルに変換するためにMojolicious::Command::Author::inflateを使用します。

prefork

$ ./myapp.pl prefork

スタンドアロンのプリフォークのHTTPとWebSocketサーバーでアプリケーションを開始するために Mojolicious::Command::preforkを使用します。

psgi

$ ./myapp.pl psgi

PSGIをバックエンドにしてアプリケーションを開始するために、 Mojolicious::Command::psgiを使用します。

routes

$ myapp.pl routes
$ script/myapp routes

アプリケーションのルートを一覧表示するためにMojolicious::Command::routesを使用します。

version

$ mojo version
$ ./myapp.pl version

インストールされているコアあるいはオプショナルなモジュールのバージョン情報 を一覧表示するためにMojolicious::Command::versionを使用します。デバッグのときにとても便利です。

属性

Mojolicious::CommandsMojo::Commandからすべての属性を継承しており、 次の新しい属性を実装しています。

hint

my $hint  = $commands->hint;
$commands = $commands->hint('Foo');

利用可能なコマンドが一覧表示された後に表示される短いヒント

message

my $msg   = $commands->message;
$commands = $commands->message('Hello World');

利用できるコマンド一覧表示の前に、表示される短い使用方法です。

namespaces

my $namespaces = $commands->namespaces;
$commands      = $commands->namespaces(['Mojolicious::Commands']);

利用できるコマンドを検索する名前空間。 デフォルトはMojo::CommandMojolicious::Commandです。

# コマンドをロードするための他の名前空間を追加
push @{$commands->namespaces}, 'MyApp::Command';

メソッド

Mojolicious::CommandsMojo::Commandからすべてのメソッドを継承しており、 次の新しいメソッドを実装しています。

detect

my $env = $commands->detect;

環境を検出します。検出できなかった場合はundefを返します。

run

$commands->run;
$commands->run(@ARGV);

コマンドをロードし、実行します。デプロイ環境の自動検知は環境変数 MOJO_NO_DETECT により無効にされます。

start_app

Mojolicious::Commands->start_app('MyApp');
Mojolicious::Commands->start_app(MyApp => @ARGV);

アプリケーションをロードし、そのコマンドライン・インターフェースを開始します。 -h/--help, --home,-m/--modeオプションは、 すべてのコマンドで共有され、コンパイル時に@ARGVから解析される ことに注意してください。

# アプリケーションを常に daemon で開始します
Mojolicious::Commands->start_app('MyApp', 'daemon', '-l', 'http://*:8080');

参考

Mojolicious, Mojolicious::Guides, http://mojolicio.us.

(Mojolicious 8.12を反映。2019年6月5日更新)