[macruby-changes] [463] MacRuby/trunk/lib/hotcocoa/application_builder.rb
source_changes at macosforge.org
source_changes at macosforge.org
Thu Aug 21 14:19:12 PDT 2008
Revision: 463
http://trac.macosforge.org/projects/ruby/changeset/463
Author: rich at infoether.com
Date: 2008-08-21 14:19:12 -0700 (Thu, 21 Aug 2008)
Log Message:
-----------
add icon support
Modified Paths:
--------------
MacRuby/trunk/lib/hotcocoa/application_builder.rb
Modified: MacRuby/trunk/lib/hotcocoa/application_builder.rb
===================================================================
--- MacRuby/trunk/lib/hotcocoa/application_builder.rb 2008-08-21 21:18:55 UTC (rev 462)
+++ MacRuby/trunk/lib/hotcocoa/application_builder.rb 2008-08-21 21:19:12 UTC (rev 463)
@@ -6,9 +6,12 @@
ApplicationBundlePackage = "APPL????"
- attr_accessor :name, :load_file, :sources, :overwrite
+ attr_accessor :name, :load_file, :sources, :overwrite, :icon, :version, :info_string
def self.build(build_options)
+ build_options.each do |key, value|
+ build_options[key.intern] = value if key.respond_to?(:intern)
+ end
if build_options[:file]
require 'yaml'
build_options = YAML.load(File.read(build_options[:file]))
@@ -16,6 +19,9 @@
ab = new
ab.name = build_options[:name]
ab.load_file = build_options[:load]
+ ab.icon = build_options[:icon] if build_options[:icon] && File.exist?(build_options[:icon])
+ ab.version = build_options[:version] || "1.0"
+ ab.info_string = build_options[:info_string]
ab.overwrite = (build_options.include?(:overwrite) ? build_options[:overwrite] : true)
sources = build_options[:sources] || []
sources.each do |source|
@@ -33,6 +39,7 @@
build_bundle_structure
write_bundle_files
copy_sources
+ copy_icon_file if icon
end
def overwrite?
@@ -80,6 +87,10 @@
end
end
+ def copy_icon_file
+ FileUtils.cp(icon, icon_file)
+ end
+
def write_pkg_info_file
File.open(pkg_info_file, "wb") {|f| f.write ApplicationBundlePackage}
end
@@ -91,7 +102,11 @@
f.puts %{<plist version="1.0">}
f.puts %{<dict>}
f.puts %{ <key>CFBundleDevelopmentRegion</key>}
- f.puts %{ <string>English</string>}
+ f.puts %{ <string>English</string>}
+ f.puts %{ <key>CFBundleIconFile</key>} if icon
+ f.puts %{ <string>#{name}.icns</string>} if icon
+ f.puts %{ <key>CFBundleGetInfoString</key>} if info_string
+ f.puts %{ <string>#{info_string}</string>} if info_string
f.puts %{ <key>CFBundleExecutable</key>}
f.puts %{ <string>#{name.gsub(/ /, '')}</string>}
f.puts %{ <key>CFBundleIdentifier</key>}
@@ -105,7 +120,7 @@
f.puts %{ <key>CFBundleSignature</key>}
f.puts %{ <string>????</string>}
f.puts %{ <key>CFBundleVersion</key>}
- f.puts %{ <string>1.0</string>}
+ f.puts %{ <string>#{version}</string>}
f.puts %{ <key>NSPrincipalClass</key>}
f.puts %{ <string>NSApplication</string>}
f.puts %{</dict>}
@@ -158,6 +173,10 @@
File.join(contents_root, "Info.plist")
end
+ def icon_file
+ File.join(resources_root, "#{name}.icns")
+ end
+
def pkg_info_file
File.join(contents_root, "PkgInfo")
end
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080821/04623c6d/attachment.html
More information about the macruby-changes
mailing list