kiyoka.2009_08_01 RSSPLAIN

Related pages: !kiyoka.blog.list !kiyoka.blog.2009_08
5555555555555555555555555555555555555555555
5

[Nendo] 次はアプリを試作してみよう

5

私がRubyで書いているLisp方言、 Nendoの開発状況続き。

5

 

5

さて、Nendoをどういう方向に持って行こうか考えているのだが、考える前にNendoで簡単なアプリを作ってみようと思い立った。

5

そうすれば、自分が言語に期待するものがわかるんじゃないか。

5

最初に作ろうと思っているのは、パッケージマネージャソフト StowEXTのラッパー。

5

昔、CmmiEXTというパッケージマネージャのラッパーを作ったけど、ちょっと自分のパッケージ管理のユースケースに合わなくなってきた。

5

今は無理矢理CmmiとStowの組合せでやっているけど、ちょっとめんどくさい。

5

もっとStow専用にして、スムースに使えるものがいい。

5

 

5

こんな風に使いたい。ツールの名前はstowspecがいいかな。

5
 ソースアーカイブを引数に渡すと自動的に ~/stowspecに登録してくれる
5
$ stowspec http://www.example.com/hogehoge-1.2.3.tar.gz
5
$ cd ~/stowspec
5
$ ls 
5
hogehoge-1.2.3
5

 

5
 specファイルがS式になっていて、さっきのコマンドで自動生成されている
5
$ cd ~/stowspec/hogehoge-1.2.3
5
$ cat specfile
5
5
(stow
5
  (configure "configure --prefix=/usr/local/stow/hogehoge-1.2.3")
5
  .
5
  (略)
5
  .
5

 

5
 specファイルがカレントディレクトリにあれば /usr/local/stow/ へのインストールまでは全く考えなくても良い。
5
$ cd ~/stowspec/hogehoge-1.2.3
5
$ stowspec
5
 以下、 configure, make, make install の全プロセスが走る。
5
  .
5
  .
5

 

5

こうすれば、ソースコードからビルドした手順が残せたり、同一ソフトの複数バージョンを混乱無く管理できそう。

5

他にも実現したいことは、

5
~/stowspec 以下をgitで管理したい。そのためには、~/stowspec 以下にはspecファイル以外は置きたくない。
5
--prefix指定がちゃんと動かないtarボールを発見してエラー通知したい。
5
インストールターゲットごとに、ビルド条件を変えたい。(そこはS式なのでifとかcondとか使って自由自在)
5

かな。

5

今のNendoの機能では不足がありすぎるだろうから、随時構文を追加したり、デザインを見なおしたりしながら進めようと思う。

5

 

5

...comment disabled...