XULアプリケーション テンプレート 作成スクリプト
XULRunnerもインストールしたことだし、なんかXULアプリでも作ろうかと思って、 XULRunner tutorial(http://blogs.acceleration.net/ryan/archive/2005/05/06/1073.aspx)を見てみた。ディレクトリ構造をこう作れ、とか設定ファイルを三種類つくれ、とかいろいろ面倒なことが書いてあったので、一発でそのへんの下準備をしてくれるスクリプトを書いてみた。知識をコードにしてメモ。
例によってruby製。このスクリプトにアプリケーションの名前を渡して起動すると、カレントディレクトリにそのアプリケーション用のディレクトリを作って、設定ファイルも適当にでっちあげる。一応これ叩くだけで、application.iniをXULRunnerにくわせると、タイトルバーだけのウインドウがでるようにはなってます。
#!/usr/bin/ruby require 'fileutils' def make_file(filename,body) open(filename,'w') do |f| f.puts body end end def safe_cd(dirname) FileUtils.mkdir_p(dirname) FileUtils.cd(dirname) end appname = ARGV.shift raise 'require appname' if appname == nil ## app directory safe_cd(appname) make_file('application.ini',<<EO_app) [App] Vendor=MozillaTest Name=#{appname} Version=0.1 BuildID=#{Time.now.strftime('%Y%m%d')} [Gecko] MinVersion=1.8 MaxVersion=1.8 EO_app ##chrome directory safe_cd('chrome') make_file('chrome.manifest',<<EO_chr) content #{appname} file:#{appname}/ //content #{appname} jar:#{appname}.jar!/ EO_chr safe_cd(appname) make_file("#{appname}.xul",<<EO_xul) <?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <window id="#{appname}-window" title="#{appname}" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> </window> EO_xul FileUtils.cd('../') FileUtils.cd('../') ## defaults/preferences directory safe_cd('defaults') safe_cd('preferences') make_file("#{appname}.js",<<EO_prefs) pref("toolkit.defaultChromeURI", "chrome://#{appname}/content/#{appname}.xul"); EO_prefs
ほんとに単純な処理しかしてないし、chrome.manifestの中でのコメントの記法がわからなかったので適当に書いちゃってます。ご存知の方は教えてください。