次へ。
最近mixiとはてなのブログ区別がつかなくなっていてイカン。
mixiはもっとどうしようもない路線で行くべきだなぁ。
ご飯食べてないわけじゃないですよ。
今日は、ラーメン+送られてきたトウモロコシ+なにやら大量の野菜
野菜が減らない。食べるけど。
なすとピーマンを油で揚げてポン酢でいただくというモノ、3回目ともなると上手くできるようになってきた。今日は焦がさずに、極めておいしくできた。
油をケチるといけない。
で、次へ。
VIVER本体プログラム(そろそろ正式名称が要るんじゃないかと)はある程度できた感じなので、プラグインシステムへ。
ポイント:
ディスクイメージの外に出す
NBDをもう一本使う?
NFS?
tftp?
「プラグインサーバー」?
メタデータだけ最初に渡して、後はオンデマンドでtftp…NBDの方が良さそうだな…
依存関係
「この機能を提供」
「この機能が要る」
「アイツが要る」
「アイツのver ** 以上が要る」
「アイツと衝突」
「このファイルが要る」
「このライブラリが要る」
「このバイナリが要る」
OR指定
バージョン指定
順番指定
「アイツより先に」
「アイツより後に」
「この機能を提供するヤツらより先に」
「この機能を提供するヤツらより後に」
…複雑すぎるな…
「機能群」という分け方を導入してみた。
wakenetが『Network』機能を提供、firewallは『Network』機能と『Firewall』機能を提供。
このとき「機能『Network』を提供するヤツらより後に」を指定したプラグインは、wakenetとfirewallが終わった後に実行される。
init-ngがこんな処理をやっている。
…む。要らない気がしてきた。そもそも 1プラグイン = 1サービス(1機能) だしな…
うむ。まずは簡単にいこう。
メタデータのXMLは、ドキュメント的内容も含めると良いんじゃないかと。
domain
port
ssl
このサービスは、POSIXユーザーアカウントを管理するLDAPサーバーを起動します。
…
こんな感じ?
基本形はviverrc 0.1とさほど変わっていない。(0.1はほとんどこの情報を使っていない
SummaryとかDescriptionは、プラグイン管理ツールで表示する制御タグを埋める形式でも良いし、そのまま直に読めても良い。HTMLチックなくらいはあっても良いのかな。
XMLはいろいろ書けて、その上良くできたパーサーがたくさんあって良い。
今度はどのパーサーを使おうか。0.1はlibparsifal。SAX型。
expatが良いのかな。今度はDOMが良いなぁ。イベント駆動型はプログラムがややこしくなる。(と言うかそこのところ技術不足 orz)
依存関係の解決と、
依存関係、どうすりゃいいんだ…