Hatena::ブログ(Diary)

sshi.Continual このページをアンテナに追加 RSSフィード

プロフィール

sshi

SFと映画と小説とRuby信者(最近はhaskellびいき)です。

 | 

2006-02-08 Wed

XULアプリケーション テンプレート 作成スクリプト  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の中でのコメント記法がわからなかったので適当に書いちゃってます。ご存知の方は教えてください。

あれ。はてなWiki失敗?  あれ。はてなWiki失敗?を含むブックマーク

XULRunnerリンクになってない…なんで?

トラックバック - http://d.hatena.ne.jp/sshi/20060208
 | 

あわせて読みたい
sshi.Continual 912432 なかのひと RSS feed meter for http://d.hatena.ne.jp/sshi/