From da79e7ea7cd63d957f0a21a5c8ce4987b247a515 Mon Sep 17 00:00:00 2001 From: Laurent Sansonetti Date: Wed, 9 May 2012 12:09:24 +0200 Subject: [PATCH] support for nib files --- lib/motion/project.rb | 4 ++++ lib/motion/project/app.rb | 1 + lib/motion/project/builder.rb | 13 ++++++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/motion/project.rb b/lib/motion/project.rb index 54ae7909..e856298a 100644 --- a/lib/motion/project.rb +++ b/lib/motion/project.rb @@ -133,6 +133,10 @@ task :clean do App.info 'Delete', App.config.build_dir rm_rf(App.config.build_dir) App.config.vendor_projects.each { |vendor| vendor.clean } + Dir.glob(App.config.resources_dir + '/*.nib').each do |p| + App.info 'Delete', p + rm_rf p + end end desc "Show project config" diff --git a/lib/motion/project/app.rb b/lib/motion/project/app.rb index f53bbec5..7f20872f 100644 --- a/lib/motion/project/app.rb +++ b/lib/motion/project/app.rb @@ -74,6 +74,7 @@ module Motion; module Project File.open('.gitignore', 'w') do |io| io.puts ".repl_history" io.puts "build" + io.puts "resources/*.nib" end App.log 'Create', File.join(app_name, 'Rakefile') File.open('Rakefile', 'w') do |io| diff --git a/lib/motion/project/builder.rb b/lib/motion/project/builder.rb index 39956a81..b84c2401 100644 --- a/lib/motion/project/builder.rb +++ b/lib/motion/project/builder.rb @@ -284,6 +284,17 @@ EOS File.open(bundle_pkginfo, 'w') { |io| io.write(config.pkginfo_data) } end + # Compile IB resources. + if File.exist?(config.resources_dir) + Dir.glob(File.join(config.resources_dir, '*.xib')).each do |xib| + nib = xib.sub(/\.xib$/, '.nib') + if !File.exist?(nib) or File.mtime(xib) > File.mtime(nib) + App.info 'Compile', xib + sh "/usr/bin/ibtool --compile \"#{nib}\" \"#{xib}\"" + end + end + end + # Copy resources, handle subdirectories. reserved_app_bundle_files = [ '_CodeSignature/CodeResources', 'CodeResources', 'embedded.mobileprovision', @@ -293,7 +304,7 @@ EOS resources_files = [] if File.exist?(config.resources_dir) resources_files = Dir.chdir(config.resources_dir) do - Dir.glob('**/*').reject { |x| File.directory?(x) } + Dir.glob('**/*').reject { |x| File.directory?(x) or ['.xib'].include?(File.extname(x)) } end resources_files.each do |res| res_path = File.join(config.resources_dir, res)