app-composer, haskell

cliアプリを簡単にバインドしたい

標準入出力のモジュールを複数つないで、一つのアプリケーションを作れないかと考えました。

色々試行錯誤中ですが、第一ステップとしてテキストを扱うモジュールをつなげていくツールを作って見ました。

とりあえず、app-composerと呼んでおきましょう。

https://github.com/reouno/app-composer

サンプルでは、

  • 読み込みモジュール
  • 分かち書きモジュール
  • bag-of-words作成モジュール

をapp-composerで接続して順次実行します。実行方法はgithubのreadmeを参照してください。

現状、各モジュールの実行ファイルがあるディレクトリに、io.jsonという入出力形式の定義ファイルを置く仕様にしています。これは、例えば以下のようなものです。

read.hsのio.json

{
    "input":
        {
            "filePath": "string"
        },
    "output":
        {
            "fileContent": "string"
        }
}

inputとoutputというキーがあり、その値として、read.hsの入力json形式、出力json形式を定義します。この場合は、read.hsは

{ "filePath": "文字列" }

という形式の入力を受け取り、

{ "fileContent": "文字列" }

という形式で標準出力するモジュールとなります。

興味のある方は使って見てください。

今後、

  • テキスト以外の入出力に対応
  • グラフ構造にして、分岐・ループ等を可能にする
  • io.jsonを作る手間を減らす

というようなことを考えています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です