Signed-off-by: James Turnbull <[email protected]>
---
 Rakefile            |   31 ++++++-------------------------
 tasks/rake/gem.rake |   45 +++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 25 deletions(-)
 create mode 100644 tasks/rake/gem.rake

diff --git a/Rakefile b/Rakefile
index 31771a0..8760ee2 100644
--- a/Rakefile
+++ b/Rakefile
@@ -3,13 +3,13 @@
 $: << File.expand_path('lib')
 $LOAD_PATH << File.join(File.dirname(__FILE__), 'tasks')
 
-Dir['tasks/**/*.rake'].each { |t| load t }
-
 require './lib/puppet.rb'
 require 'rake'
 require 'rake/packagetask'
 require 'rake/gempackagetask'
 
+Dir['tasks/**/*.rake'].each { |t| load t }
+
 FILES = FileList[
     '[A-Z]*',
     'install.rb',
@@ -24,37 +24,18 @@ FILES = FileList[
     'spec/**/*'
 ]
 
-task :default do
-    sh %{rake -T}
-end
-
-spec = Gem::Specification.new do |spec|
-    spec.platform = Gem::Platform::RUBY
-    spec.name = 'puppet'
-    spec.files = FILES.to_a
-    spec.version = Puppet::PUPPETVERSION
-    spec.add_dependency('facter', '>= 1.5.1')
-    spec.summary = 'Puppet, an automated configuration management tool'
-    spec.author = 'Reductive Labs'
-    spec.email = '[email protected]'
-    spec.homepage = 'http://reductivelabs.com'
-    spec.rubyforge_project = 'puppet'
-    spec.has_rdoc = true
-    spec.rdoc_options <<
-        '--title' <<  'Puppet - Configuration Management' <<
-        '--main' << 'README' <<
-        '--line-numbers'
-end
-
 Rake::PackageTask.new("puppet", Puppet::PUPPETVERSION) do |pkg|
     pkg.package_dir = 'pkg'
     pkg.need_tar_gz = true
     pkg.package_files = FILES.to_a
 end
 
-Rake::GemPackageTask.new(spec) do |pkg|
+task :default do
+    sh %{rake -T}
 end
 
+task :puppetpackages => [:create_gem, :package]
+
 desc "Run the specs under spec/"
 task :spec do
     require 'spec'
diff --git a/tasks/rake/gem.rake b/tasks/rake/gem.rake
new file mode 100644
index 0000000..8da1962
--- /dev/null
+++ b/tasks/rake/gem.rake
@@ -0,0 +1,45 @@
+GEM_FILES = FileList[
+    '[A-Z]*',
+    'install.rb',
+    'bin/**/*',
+    'lib/**/*',
+    'conf/**/*',
+    'man/**/*',
+    'examples/**/*',
+    'ext/**/*',
+    'test/**/*',
+    'spec/**/*'
+]
+
+spec = Gem::Specification.new do |spec|
+    spec.platform = Gem::Platform::RUBY
+    spec.name = 'puppet'
+    spec.files = GEM_FILES.to_a
+    spec.executables = %w{puppetca puppetd puppetmasterd puppetqd puppetrun 
filebucket pi puppet puppetdoc ralsh} 
+    spec.version = Puppet::PUPPETVERSION
+    spec.add_dependency('facter', '>= 1.5.1')
+    spec.summary = 'Puppet, an automated configuration management tool'
+    spec.author = 'Reductive Labs'
+    spec.email = '[email protected]'
+    spec.homepage = 'http://reductivelabs.com'
+    spec.rubyforge_project = 'puppet'
+    spec.has_rdoc = true
+    spec.rdoc_options <<
+        '--title' <<  'Puppet - Configuration Management' <<
+        '--main' << 'README' <<
+        '--line-numbers'
+end
+
+desc "Prepare binaries for gem creation"
+task :prepare_gem do
+    sh "mv sbin/* bin"
+end
+
+desc "Create the gem"
+task :create_gem => :prepare_gem do
+    sh "mkdir -p pkg"
+    Gem::Builder.new(spec).build
+    sh "mv *.gem pkg"
+    sh "rm bin/*"
+    sh "git reset --hard"
+end
-- 
1.6.0.6


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to