言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

ServerDirectory

Squeak では、アップデートの取得、プロジェクトの共有など、ネットワーク上のファイルを色んな時に使う。その中心にあるのが ServerDirectory というクラス。多分名前から言って、ネット上のファイルをあたかもローカルのように使う事を意図して作られた物だろう。Squeak の裏方である ServerDirectory について調べてみた。

1) サーバーを登録する。

まず、利用するサーバーを準備する。例えば以下のように設定しておく。

サーバ名: languagegame.org (www サーバと ftp サーバが稼動)
使うディレクトリ: /home/takasi/www/squeak/updates/
www 上のドキュメントルート: /home/takasi/www/
ftp ユーザ名: takasi
ftp パスワード: 内緒

次に、元々のサーバーの設定をファイルに書き出す。以下を do it.

(FileDirectory default directoryNamed: 'prefs',  FileDirectory slash,  'knownServers') assureExistence.
ServerDirectory transferServerDefinitionsToExternal.

これで、prefs/knownServers の中に既存の設定が保存されるので、このファイルを適当にコピペ編集で好きに設定する。例えば以下のようなファイルを languagegame.org のような名前をつけて保存する。関連するファイルの行末は全て CR なので注意。

name:	languagegame.org
directory:	www/squeak/updates
type:	ftp
server:	languagegame.org
group:	LanguageGame Updates
user:	takasi
url:	 http://languagegame/squeak/updates
acceptsUploads:	true

そして、以下を do it して、設定ファイルの内容を反映させる。

ServerDirectory fetchExternalSettingsIn: (FileDirectory default directoryNamed: 'prefs')

これだけで、フラップの公開ボタンの長押しに出てくるサーバーリストに FTP が現れる。

2) アップデートストリーム

先程はプロジェクトの共有だが、コードを共有する方法。現在は Monticello という洗練された仕組みが有るので、あまり開発者が使う必要は無いと思う。これをやるにはディレクトリ名が updates である必要がある。この例で言うと、updates ディレクトリに updates.list という名前でファイルを作り、以下のようにバージョン名を書く(行末は CR)。バージョン名は SystemVersioncurrent version で調べて下さい。

#SqueakNihongo6.1

次に、以下を do it して http から見たディレクトリの場所を伝える。

Utilities updateUrlLists add: #('Languagegame Server' ('languagegame.org/squeak/')).

これで完成。あとはチェンジセットを登録するだけだ。ファイルリストを開けて、公開したいチェンジセットを右クリックし、broadcast as update を選択する。するとファイル名の頭に勝手に番号がついて、アップデート出来る様になる。

  • 分からない事。
    • 『探す』ボタンを普通にクリックした時に出てくる画面で新しいサーバを出すようにする方法。
  • 参考