bakepi コマンドの解説~ SOCKET SERVER 'HAL'

ソケットサーバー「HAL」では、設定やアプリケーション構築を簡単にするための便利なコマンド bakepi(パイを焼く)が準備されています。

bakepi コマンドは、指定するオプションにより実行される処理が変わります。

このページでは各オプションに対する処理の説明を行います。

bakepi コマンドの解説

 ソケットサーバー「HAL」では、設定やアプリケーション構築を簡単にするための便利なコマンド bakepi(パイを焼く)が準備されています。

 bakepi コマンドは、指定するオプションにより実行される処理が変わります。

  • -d テーブルとデータモデルを作成する
  • -j Julius の定義ファイルを記述文法にコンパイルする
  • -i HAL 用 ID を取得する
  • -l HAL にライセンスファイルを登録する
  • -u HAL のライセンスファイルを削除する
  • -g アクションを取得してインストールする
  • -r アクションを削除する
  • -e アクションをエクスポートする
  • -s My アクション用スケルトンを生成する
  • -gm My アクションをインストールする
  • -rm My アクションを削除する
  • -sw WEB アプリケーション用スケルトンを生成する
  • -f WEB アプリケーション用アカウント情報を登録する
  • -n HAL で利用する IP アドレスを設定する

 以下に、オプションに対する処理の内容と利用方法、必要な引数について説明します。

-d:

 データベースに、テーブルを作成し、アクセスするためのデータモデルクラスを生成します。このコマンドはデータベースにテーブルを作成するため、データベースをインストールし、/HAL/setting/DBSetting.php でデータベースへの接続設定を記述する必要があります。

参考)データベースの導入方法

MySQL の導入 / PostgreSQL の導入 / SQLite の導入

sudo bakepi -d [string データモデル名] ([boolean テーブル削除])

 このコマンドは、/HAL/userdata/db/tabledefinitions 内にある データモデル.yml で定義されたテーブル定義を読み込んでデータベースにテーブルを作成し、/HAL/userdata/db/datamodels 内に、データモデル.php ファイルを作成します。

 例えば、/HAL/userdata/db/tabledefinitions/Test.yml ファイルを処理するには、

sudo bakepi -d Test

を実行します。これにより、データベースには tests テーブルが作成され、データモデルとして Test.php が生成されます。

 なお、既に tests テーブルが存在する場合、処理は中断されます。既存テーブルを削除して新たにテーブルとデータモデルを生成したい場合は、[boolean テーブル削除] に true を指定して下さい。

sudo bakepi -d Test true

 また、[string データモデル名] に all を指定することで、/HAL/userdata/db/tabledefinitions 内にある全ての データモデル.yml を処理することができます。

-j:

 Julius の記述文法をコンパイルします。

参考)[記述文法」(http://julius.osdn.jp/juliusbook/ja/desc_lm.html#id2537489)

 ソケットサーバー「HAL」では、認識用文法をより簡単に記述するため、/HAL/userdata/julius 内の 認識用文法.yml により grammar ファイルと voca ファイルの自動生成を行って記述文法をコンパイルします。

sudo bakepi -j [string 認識用文法]

 例えば認識用文法 Time.julius.yml から記述文法をコンパイルするには、

sudo bakepi -j Time

 を実行します。また、/HAL/userdata/julius 内の全ての 認識用文法.julius.yml をコンパイルするには [string 認識用文法] に all を指定します。

sudo bakepi -j all

-i:

 ソケットサーバー「HAL」用の Raspberry Pi 固有コードを取得します。このコードは、ライセンスコードを取得する際に必要です。

sudo bakepi -i

 40 桁の 16 進数が出力されます。

-l:

 ライセンスコードを HAL に登録します。

sudo bakepi -l [string ライセンスコード]

 正しいライセンスコードファイルを HAL ディレクトリ内に生成します。

-u:

 ライセンスコードファイルを削除します。

sudo bakepi -u

 HAL ディレクトリ内のライセンスファイルが削除されます。

-g:

 アクション を feijoa.jp の WEB サイトからダウンロードし、HAL にインストールします。

sudo bakepi -g [string アクションタイプ] [string アクション名] [string チェックサム] 

 アクションには 3 つのタイプがあります。

  • voice : 音声命令で動作するアクション
  • net : WEB アプリケーションからインターネット経由で実行するアクション
  • sensor : センサーで検知した値などにより発声するイベントアクション

 例えば、音声命令アクションの chat をインストールする場合は、

sudo bakepi -g voice chat b94bf2c3bede60258d61a93fdd058ffe4efdf8fc

を実行します。(※最後のチェックサムはファイルのアップデートにより変わっている変更されます)

-r:

 インストールされているアクションをアンインストールします。

sudo bakepi -r voice chat

-e:

 アクションを ZIP ファイル圧縮し、エクスポートします。

sudo bakepi -e [string アクションタイプ] [string アクション名] ([string 出力先パス])

 任意の場所に出力したい場合は、[string 出力先パス] を指定して下さい。省略した場合、ファイルは /var/www/HAL/system/export に出力されます。

-s:

 My アクションを開発するためのスケルトンを /HAL/userdata/dev 内に生成します。

sudo bakepi -s [string アクションタイプ] [string Myアクション名]

 例えば、音声命令で動作する My アクション Test を生成するには、

sudo bakepi -s voice test

を実行します。/HAL/userdata/dev/voice 内に、MyTest が作成されます。

/HAL/userdata/dev/voice
 ├ MyTest.php(アクションファイルの実態です)
 ├ MyTest.yml(命令に対して実行するメソッドを定義します)
 ├ julius
 │ └ MyTest.julius.yml(認識用文法生成のための定義ファイルです)
 └ languages
   ├ MyTest.en_US.yml
   ├     : (言語ごとの応答メッセージ定義ファイルです。
           /HAL/setting/HALSetting.php の
           USE_LANGUAGE で定義されている言語の数だけ
           .yml ファイルが自動生成されます)

 My アクションは接頭詞として自動で My が付きます。これは、feijoa.jp の WEB サイトで配布されるサンプルアクションとの名前の衝突を避けるためです。

 My アクションは、/HAL/setting/HALSetting.php の DEVELOP_MODEtrue の場合だけ読み込まれます。

-gm:

 開発が完了した My アクションをインストールします。

sudo bakepi -gm [string アクションタイプ] [string Myアクション名]

 /HAL/userdata/dev ディレクトリ内の My アクションを /HAL/actions ディレクトリにインストールします。

 例えば、開発中の My アクション MyTest をインストールするには、

sudo bakepi -gm voice test

を実行します。アクション名の接頭詞 My は必要ありません。

 この操作は Linux コマンド mv と等価です。つまり、/HAL/userdata/dev ディレクトリ内の元ファイルはすべて移動されます。

-rm:

 開発中の My アクションをアンインストールします。

sudo bakepi -rm [string アクションタイプ] [string Myアクション名]

 例えば、開発中の My アクション MyTest をアンインストールするには、

sudo bakepi -rm voice test

を実行します。アクション名の接頭詞 My は必要ありません。

-sw:

 WEB フレームワーク「Feijoa for HAL」(webapps 内)に、アクションのスケルトンを生成します。

sudo bakepi -sw  [string アクション名]

 生成されるファイルとディレクトリ構造は、WEB フレームワーク「Feijoa for HAL」の説明を参照してください。

-f:

 WEB フレームワーク「Feijoa for HAL」のアカウントを /HAL/setting の AccountSetting.php に記述します。

sudo bakepi -f [string アカウント名] [string パスワード]

-n:

 HAL で利用する IP アドレスを設定します。

sudo bakepi -n [string ネットワークカード名]

 例えば、HAL の通信で eth0 を利用するには、

sudo bakepi -n eth0

を実行します。


ご購入

もう少々お待ち下さい。

体験版

version 1.5 から、IPアドレス制限が無くなり、ライセンス制になりました。ライセンスされていない場合、起動後30時間後に自動的に HAL を終了します。

体験版のインストーラー・スクリプトをダウンロード インストーラー・スクリプト
SHA-1: dd2a390b4f0f8c15301eaee23cd92bd5e831da91
※インストール方法については ソケットサーバー「HAL」の概要 (version 2.0対応版)~導入方法 を御覧ください。

体験版パッケージ
HAL_trial_2_0.tar.gz | version 2.0 | SHA-1: ce31802a5b423a9b0d73721a3d43e0585b009a6f
試用期限 2017/1/31 まで

この記事へのコメント

※現在コメントはMarkdown記法が強制です。>>Markdown の書き方


この記事に返信

このコメントに返信