From b90f9c5be003ffad3109ec9177d5c1d8d6910403 Mon Sep 17 00:00:00 2001 From: Chris Eppstein Date: Wed, 14 Mar 2012 00:19:54 -0700 Subject: [PATCH] Add support for packager to build one-click installers --- .gitignore | 1 + Gemfile | 3 +++ Rakefile | 37 ++++++++++++++++++++++++++++++++++--- 3 files changed, 38 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index fbe701a3..b43992ee 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ devbin vendor/ruby vendor Gemfile.lock +Compass.pkg diff --git a/Gemfile b/Gemfile index 15601958..36360446 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,7 @@ source :rubygems gemspec +unless ENV['PKG'] gem "cucumber", "~> 1.1.4" gem "rspec", "~>2.0.0" gem "rails", "~> 3.1" @@ -25,4 +26,6 @@ unless ENV["CI"] gem 'guard' gem 'guard-test' gem 'guard-cucumber' + gem 'packager' +end end diff --git a/Rakefile b/Rakefile index 7fcfe035..369b3c6c 100644 --- a/Rakefile +++ b/Rakefile @@ -1,7 +1,16 @@ require 'rubygems' -require 'bundler' -Bundler.setup -require 'rake/dsl_definition' rescue nil +if ENV["PKG"] + $: << File.expand_path(File.dirname(__FILE__))+"/lib" +else + require 'bundler' + Bundler.setup +end + +begin + require 'rake/dsl_definition' +rescue LoadError + #pass +end require 'compass' # ----- Default: Testing ------ @@ -10,12 +19,17 @@ task :default => [:test, :features] require 'rake/testtask' require 'fileutils' + +begin require 'cucumber' require 'cucumber/rake/task' Cucumber::Rake::Task.new(:features) do |t| t.cucumber_opts = "features --format progress" end +rescue LoadError + $stderr.puts "cannot load cucumber" +end Rake::TestTask.new :test do |t| t.libs << 'lib' @@ -124,3 +138,20 @@ rescue LoadError => e puts "WARNING: #{e}" end +begin + require 'packager/rake_task' + require 'compass/version' + # Building a package: + # 1. Get packager installed and make sure your system is setup correctly according to their docs. + # 2. Make sure you are actually using a universal binary that has been nametooled. + # 3. PKG=1 OFFICIAL=1 rake packager:pkg + Packager::RakeTask.new(:pkg) do |t| + t.package_name = "Compass" + t.version = Compass::VERSION + t.domain = "compass-style.org" + t.bin_files = ["compass"] + t.resource_files = FileList["frameworks/**/*"] + ["VERSION.yml", "LICENSE.markdown"] + end +rescue LoadError => e + puts "WARNING: #{e}" +end