« iOS等のブラウザにJavaScriptを送信して実行できるXiangpian(設定上級編) | メイン | iOS等のブラウザにJavaScriptを送信して実行できるXiangpian(CUIモード編) »

iOS等のブラウザにJavaScriptを送信して実行できるXiangpian(コマンドラインオプション編)

XiangpianはGUIからだけではなくコマンドラインからも起動できます。コマンドラインから起動すると、WebコンソールからだけでなくCUIからもブラウザを操作することができます。また、起動時にはオプションを指定することができます。今回は、起動時のコマンドラインオプションについて説明します。Xiangpianに関する過去のエントリーは以下のURLを参照のこと。
ここでは、最新のバージョンである0.0.5を例に説明します。コマンドラインから起動するには、ダウンロードして解凍したディレクトリにあるjarファイルを使います。せっかくexe化app化したので、本来なら同じような仕組みを準備すべきですが、現行のバージョンではそこまで対応していません。
コマンドラインオプション
それではまずヘルプを表示してみましょう。「java -cp lib -jar Xiangpian-0.0.5.jar --help」でヘルプが表示されます。
% java -cp lib -jar Xiangpian-0.0.5.jar --help
The options available are:
    [--color -c] : display color
    --command-prefix value : specify command prefix
    [--help -h] : display help
    --port -p value : specify port number
    [--stop-external -s] : stop execute external command from websocket
    --user-interface -u /^(g|c)(ui)?$/ : select user interface [g,gui,c,cui]
重要なオプションから順に解説します。
「--user-interface」「-u」は、GUIモードで起動するかCUIモードで起動するかを選択します。GUIモードは、「基本編」で説明した動作と同じです(厳密にいうとexe化・app化していないため、アイコンが表示されません)。CUIモードで起動するとコンソールでJavaScriptを入力し、他端末のブラウザ上で実行することができます。
# CUIモードで起動
% java -cp lib -jar Xiangpian-0.0.5.jar -u c
# GUIモードで起動
% java -cp lib -jar Xiangpian-0.0.5.jar --user-interface gui
「--port」「-p」では、WebSocketのポート番号を指定することができます。既定値は40320です。
# ポート番号8080で起動
% java -cp lib -jar Xiangpian-0.0.5.jar -u g --port 8080
「--stop-external」「-s」を指定すると、WebコンソールからのJavaScriptの実行ができなくなります。Webコンソールから制御ができないため、GUIモードと共に指定すると何もできなくなります(console.logからの出力は表示されます)。
# Webコンソールからのコマンド実行を抑制
% java -cp lib -jar Xiangpian-0.0.5.jar -u c -s
「--color」「-c」は、CUIモードをANSIカラーに対応させます。実行したコードと結果が色分けされるためお勧めのオプションです。環境によっては対応していません。
# 色分けされたCUIモードを起動
% java -cp lib -jar Xiangpian-0.0.5.jar -u c -c
「--command-prefix」は、CUIモードでコマンドを実行する前に必要なprefixを変更できます。詳細は次回以降のエントリーで解説しますが、JavaScriptのコードとXiangpianへの命令を区別するためのものです。既定値は「;;」です。
# コマンドのprefixをスペースに変更して起動
% java -cp lib -jar Xiangpian-0.0.5.jar -u c --command-prefix " "
「--help」「-h」はコマンドラインのヘルプを表示します。引数には対応していません。
#ヘルプを表示
% java -cp lib -jar Xiangpian-0.0.5.jar --help
コマンドラインオプション処理
コマンドラインオプションの処理にはJewelCliというライブラリを使用しています。
JewelCliはJavaのアノテーションを使ってコマンドラインオプションの定義ができ、使い方も簡単なので興味のある方は以下のURLからどうぞ。
ここまでXiangpianでのコマンドラインオプションの解説をしたので、Xiangpianの実例を見た方が理解がしやすいかもしれません。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Google

タグ クラウド