Merge branch '1.6.x' into 2.0rc
* 1.6.x:
Use git describe in Rakefile to determine pkg ver
Hailee Kenney
11 years ago
16 | 16 | require 'rake/packagetask' |
17 | 17 | require 'rake/gempackagetask' |
18 | 18 | |
19 | module Facter | |
20 | FACTERVERSION = File.read('lib/facter.rb')[/FACTERVERSION *= *'(.*)'/,1] or fail "Couldn't find FACTERVERSION" | |
21 | end | |
22 | ||
23 | 19 | FILES = FileList[ |
24 | 20 | '[A-Z]*', |
25 | 21 | 'install.rb', |
30 | 26 | 'spec/**/*' |
31 | 27 | ] |
32 | 28 | |
29 | def get_version | |
30 | `git describe`.strip | |
31 | end | |
32 | ||
33 | # :build_environment and :tar are mostly borrowed from puppet-dashboard Rakefile | |
34 | task :build_environment do | |
35 | unless ENV['FORCE'] == '1' | |
36 | modified = `git status --porcelain | sed -e '/^\?/d'` | |
37 | if modified.split(/\n/).length != 0 | |
38 | puts <<-HERE | |
39 | !! ERROR: Your git working directory is not clean. You must | |
40 | !! remove or commit your changes before you can create a package: | |
41 | ||
42 | #{`git status | grep '^#'`.chomp} | |
43 | ||
44 | !! To override this check, set FORCE=1 -- e.g. `rake package:deb FORCE=1` | |
45 | HERE | |
46 | raise | |
47 | end | |
48 | end | |
49 | end | |
50 | ||
51 | desc "Create a release .tar.gz" | |
52 | task :tar => :build_environment do | |
53 | name = "facter" | |
54 | rm_rf 'pkg/tar' | |
55 | temp=`mktemp -d -t tmpXXXXXX`.strip! | |
56 | version = get_version | |
57 | base = "#{temp}/#{name}-#{version}/" | |
58 | mkdir_p base | |
59 | sh "git checkout-index -af --prefix=#{base}" | |
60 | mkdir_p "pkg/tar" | |
61 | sh "tar -C #{temp} -pczf #{temp}/#{name}-#{version}.tar.gz #{name}-#{version}" | |
62 | mv "#{temp}/#{name}-#{version}.tar.gz", "pkg/tar" | |
63 | rm_rf temp | |
64 | puts "Tarball is pkg/tar/#{name}-#{version}.tar.gz" | |
65 | end | |
66 | ||
33 | 67 | spec = Gem::Specification.new do |spec| |
34 | 68 | spec.platform = Gem::Platform::RUBY |
35 | 69 | spec.name = 'facter' |
36 | 70 | spec.files = FILES.to_a |
37 | 71 | spec.executables = %w{facter} |
38 | spec.version = Facter::FACTERVERSION | |
72 | spec.version = get_version.split('-')[0] | |
39 | 73 | spec.summary = 'Facter, a system inventory tool' |
40 | 74 | spec.description = 'You can prove anything with facts!' |
41 | 75 | spec.author = 'Puppet Labs' |
48 | 82 | '--main' << 'README' << |
49 | 83 | '--line-numbers' |
50 | 84 | end |
51 | ||
52 | Rake::PackageTask.new("facter", Facter::FACTERVERSION) do |pkg| | |
53 | pkg.package_dir = 'pkg' | |
54 | pkg.need_tar_gz = true | |
55 | pkg.package_files = FILES.to_a | |
56 | end | |
57 | ||
58 | 85 | Rake::GemPackageTask.new(spec) do |pkg| |
59 | 86 | end |
60 | 87 |