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 を選択する。するとファイル名の頭に勝手に番号がついて、アップデート出来る様になる。
- 分からない事。
- 『探す』ボタンを普通にクリックした時に出てくる画面で新しいサーバを出すようにする方法。
- 参考