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

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

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

※この記事で紹介しているソケットサーバー『HAL』は、諸般の事情により現在、公開と販売を中止しています。この製品へのお問い合わせは画面上部の『お問い合わせ』メニューよりご連絡ください。

※この記事は執筆・公開から3年以上経過しています。記事の情報が古くなっている場合がありますのでご注意ください。

公開日時:2016/12/14 21:02
最終更新:2019/12/10 04:28

bakepi コマンドの解説

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

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

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

-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 つのタイプがあります。

例えば、音声命令アクションの 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

を実行します。

記事リンク