Rakefile in facter-1.1.1 vs Rakefile in facter-1.3.3
- old
+ new
@@ -1,293 +1,46 @@
# Rakefile for facter
-begin
- require 'rubygems'
- require 'rake/gempackagetask'
-rescue Exception
- nil
+begin
+ require 'rake/reductive'
+rescue LoadError
+ $stderr.puts "You must have the Reductive build library in your RUBYLIB."
+ exit(14)
end
-require 'rake/clean'
-require 'rake/testtask'
-
-require 'rake/rdoctask'
-#CLEAN.include('**/*.o')
-CLOBBER.include('doc/*')
-
-def announce(msg='')
- STDERR.puts msg
-end
-
-# Determine the current version
-
-if `ruby -Ilib ./bin/facter --version` =~ /\S+$/
- CURRENT_VERSION = $&
-else
- CURRENT_VERSION = "0.0.0"
-end
-
-if ENV['REL']
- PKG_VERSION = ENV['REL']
-else
- PKG_VERSION = CURRENT_VERSION
-end
-
-DOWNDIR = "/export/docroots/reductivelabs.com/htdocs/downloads"
-
-# The default task is run if rake is given no explicit arguments.
-
-desc "Default Task"
-task :default => :unittests
-
-# Test Tasks ---------------------------------------------------------
-
-#task :u => :unittests
-#task :a => :alltests
-
-#task :alltests => :unittests
-
-#Rake::TestTask.new(:unittests) do |t|
-# t.test_files = FileList['tests/*.rb']
-# t.warning = true
-# t.verbose = false
-#end
-
-# SVN Tasks ----------------------------------------------------------
-# ... none.
-
-# Install rake using the standard install.rb script.
-
-desc "Install the application"
-task :install do
- ruby "install.rb"
-end
-
-# Create a task to build the RDOC documentation tree.
-
-rd = Rake::RDocTask.new(:html) { |rdoc|
- rdoc.rdoc_dir = 'html'
- rdoc.template = 'html'
- rdoc.title = "Facter"
- rdoc.options << '--line-numbers' << '--inline-source' << '--main' << 'README'
- rdoc.rdoc_files.include('README', 'LICENSE', 'TODO', 'CHANGES')
- rdoc.rdoc_files.include('lib/**/*.rb')
- CLEAN.include("html")
-}
-
-# ====================================================================
-# Create a task that will package the Rake software into distributable
-# tar, zip and gem files.
-
-PKG_FILES = FileList[
- 'install.rb',
- '[A-Z]*',
- 'bin/**/*',
- 'lib/**/*.rb',
- 'test/**/*.rb',
- 'doc/**/*',
- 'etc/*'
-]
-PKG_FILES.delete_if {|item| item.include?(".svn")}
-
-if ! defined?(Gem)
- puts "Package Target requires RubyGEMs"
-else
- spec = Gem::Specification.new do |s|
-
- #### Basic information.
-
- s.name = 'facter'
- s.version = PKG_VERSION
- s.summary = "Facter collects Operating system facts."
- s.description = <<-EOF
+project = Rake::RedLabProject.new("facter") do |p|
+ p.summary = "Facter collects Operating system facts."
+ p.description = <<-EOF
Facter is a module for collecting simple facts about a host
Operating system.
EOF
- #### Dependencies and requirements.
+ p.filelist = [
+ 'install.rb',
+ '[A-Z]*',
+ 'bin/**/*',
+ 'lib/**/*.rb',
+ 'test/**/*.rb',
+ 'doc/**/*',
+ 'etc/*'
+ ]
- #s.add_dependency('log4r', '> 1.0.4')
- #s.requirements << ""
-
- s.files = PKG_FILES.to_a
-
- #### Load-time details: library and application (you will need one or both).
-
- s.require_path = 'lib' # Use these for libraries.
-
- s.bindir = "bin" # Use these for applications.
- s.executables = ["facter"]
- s.default_executable = "facter"
-
- #### Documentation and testing.
-
- s.has_rdoc = true
- s.extra_rdoc_files = rd.rdoc_files.reject { |fn| fn =~ /\.rb$/ }.to_a
- s.rdoc_options <<
- '--title' << 'Facter' <<
- '--main' << 'README' <<
- '--line-numbers'
-
- #### Author and project details.
-
- s.author = "Luke Kanies"
- s.email = "dev@reductivelabs.com"
- s.homepage = "http://reductivelabs.com/projects/facter"
- #s.rubyforge_project = "facter"
- end
-
- Rake::GemPackageTask.new(spec) do |pkg|
- #pkg.need_zip = true
- pkg.need_tar = true
- end
-
- CLEAN.include("pkg")
+ p.epmhosts = %w{culain}
+ p.rpmhost = "fedora1"
+ p.sunpkghost = "sol10b"
end
-# Misc tasks =========================================================
+project.mkgemtask do |gem|
+ gem.require_path = 'lib' # Use these for libraries.
-#ARCHIVEDIR = '/...'
-
-#task :archive => [:package] do
-# cp FileList["pkg/*.tgz", "pkg/*.zip", "pkg/*.gem"], ARCHIVEDIR
-#end
-
-# Define an optional publish target in an external file. If the
-# publish.rf file is not found, the publish targets won't be defined.
-
-#load "publish.rf" if File.exist? "publish.rf"
-
-# Support Tasks ------------------------------------------------------
-
-def egrep(pattern)
- Dir['**/*.rb'].each do |fn|
- count = 0
- open(fn) do |f|
- while line = f.gets
- count += 1
- if line =~ pattern
- puts "#{fn}:#{count}:#{line}"
- end
- end
- end
- end
+ gem.bindir = "bin" # Use these for applications.
+ gem.executables = ["facter"]
+ gem.default_executable = "facter"
end
-desc "Look for TODO and FIXME tags in the code"
-task :todo do
- egrep "/#.*(FIXME|TODO|TBD)/"
-end
-
-#desc "Look for Debugging print lines"
-#task :dbg do
-# egrep /\bDBG|\bbreakpoint\b/
-#end
-
-#desc "List all ruby files"
-#task :rubyfiles do
-# puts Dir['**/*.rb'].reject { |fn| fn =~ /^pkg/ }
-# puts Dir['bin/*'].reject { |fn| fn =~ /CVS|(~$)|(\.rb$)/ }
-#end
-
-# --------------------------------------------------------------------
-# Creating a release
-
-desc "Make a new release"
-task :release => [
- :prerelease,
- :clobber,
- :update_version,
- :tag,
- :package,
- :copy] do
- #:alltests,
-
- announce
- announce "**************************************************************"
- announce "* Release #{PKG_VERSION} Complete."
- announce "* Packages ready to upload."
- announce "**************************************************************"
- announce
-end
-
-# Validate that everything is ready to go for a release.
-task :prerelease do
- announce
- announce "**************************************************************"
- announce "* Making RubyGem Release #{PKG_VERSION}"
- announce "* (current version #{CURRENT_VERSION})"
- announce "**************************************************************"
- announce
-
- # Is a release number supplied?
- unless ENV['REL']
- fail "Usage: rake release REL=x.y.z [REUSE=tag_suffix]"
- end
-
- # Is the release different than the current release.
- # (or is REUSE set?)
- if PKG_VERSION == CURRENT_VERSION && ! ENV['REUSE']
- fail "Current version is #{PKG_VERSION}, must specify REUSE=tag_suffix to reuse version"
- end
-
- # Are all source files checked in?
- if ENV['RELTEST']
- announce "Release Task Testing, skipping checked-in file test"
- else
- announce "Checking for unchecked-in files..."
- data = `svn -q update`
- unless data =~ /^$/
- fail "SVN update is not clean ... do you have unchecked-in files?"
+if project.has?(:epm)
+ project.mkepmtask do |task|
+ task.bins = FileList.new("bin/facter")
+ task.rubylibs = FileList.new('lib/**/*')
end
- announce "No outstanding checkins found ... OK"
- end
end
-
-task :update_version => [:prerelease] do
- if PKG_VERSION == CURRENT_VERSION
- announce "No version change ... skipping version update"
- else
- announce "Updating Facter version to #{PKG_VERSION}"
- open("lib/facter.rb") do |rakein|
- open("lib/facter.rb.new", "w") do |rakeout|
- rakein.each do |line|
- if line =~ /^\s*FACTERVERSION\s*=\s*/
- rakeout.puts "FACTERVERSION = '#{PKG_VERSION}'"
- else
- rakeout.puts line
- end
- end
- end
- end
- mv "lib/facter.rb.new", "lib/facter.rb"
- if ENV['RELTEST']
- announce "Release Task Testing, skipping commiting of new version"
- else
- sh %{svn commit -m "Updated to version #{PKG_VERSION}" lib/facter.rb}
- end
- end
-end
-
-desc "Tag all the SVN files with the latest release number (REL=x.y.z)"
-task :tag => [:prerelease] do
- reltag = "REL_#{PKG_VERSION.gsub(/\./, '_')}"
- reltag << ENV['REUSE'].gsub(/\./, '_') if ENV['REUSE']
- announce "Tagging SVN copy with [#{reltag}]"
- if ENV['RELTEST']
- announce "Release Task Testing, skipping SVN tagging"
- else
- sh %{svn copy ../trunk/ ../tags/#{reltag}}
- sh %{cd ../tags; svn ci -m 'Adding Release tag #{reltag}'}
- end
-end
-
-desc "Copy the newly created package into the downloads directory"
-task :copy => [:package, :html] do
- sh %{cp pkg/facter-#{PKG_VERSION}.gem #{DOWNDIR}/gems}
- sh %{generate_yaml_index.rb -d #{DOWNDIR}}
- sh %{cp pkg/facter-#{PKG_VERSION}.tgz #{DOWNDIR}/facter}
- sh %{ln -sf facter-#{PKG_VERSION}.tgz #{DOWNDIR}/facter/facter-latest.tgz}
- sh %{cp -r html #{DOWNDIR}/facter/apidocs}
-end
-
-# $Id$
+# $Id: Rakefile 148 2006-06-27 05:34:07Z luke $