Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

installerの仕組みを考える #1

Open
mattn opened this issue Aug 11, 2010 · 2 comments
Open

installerの仕組みを考える #1

mattn opened this issue Aug 11, 2010 · 2 comments
Labels

Comments

@mattn
Copy link
Member

mattn commented Aug 11, 2010

インストーラとしてパターン化された物もあれば、makeが必要な物もある。installer_type, installer_custom と分けた方が良いかもしれない。また vba が gzip されている場合もある為、どういう解凍順が正しいかを示す必要がある。以下例。
installer_type:

  • gzip : gzipで解凍(gzip -d)
  • bzip2 : bzip2で解凍(bzip2 -d)
  • tar : tarで解凍(tar x)
  • vba : vim -c 'UseVimball' foo.vba

応用

  • gzip/vba

    • URLで示されたファイルをダウンロード * ダウンロードしたファイルを ungzip
    • 解凍したファイルを指定して vim -c 'UseVimball' foo.vba

    ※ただしこの方法ではレコードファイルが作れない

@mattn
Copy link
Member Author

mattn commented Aug 11, 2010

だいたい実装した。
あとはcustomかな?makeとか...
そろそろ本気でinstaller用のDSLを考え出さないと...

@tyru
Copy link
Member

tyru commented Aug 14, 2010

ちょっと前Lingrでも見せたもの置いておきます。
http://gist.github.com/516192

この方法の長所はシンプルなところです。
クライアントをC++で再実装とかいったことも場合によってはけっこう簡単にできる。
クライアントの実装は各命令を実装すること中心になるでしょうが、
それぞれの命令はだいたい簡単なもの(copy, mkdir)なので楽なはずです。
まぁ再実装する必要があるかはともかく、クライアントの実装が楽になるのはいいことだと思います。

あとサーバ側もクライアントがOSなどの情報を送ってきていれば
それに即した構文木(この名称が正しいものかわからない...)を生成する、
というのも比較的楽に実装できるはず。
情報を送ってきていなければ、全てのプラットフォームの構文木を返します。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants