Merge branch '2.0rc' into 2.0.x
* 2.0rc:
Use git describe in Rakefile to determine pkg ver
(#14582) Fix noise in LSB facts
Update CHANGELOG, conf/redhat/facter.spec for 1.6.9
Hailee Kenney
11 years ago
56 | 56 | 9df78a1 (#9929) Add support for Mageia to operatingsystem.rb and operatingsystemrelease.rb |
57 | 57 | 51cb8e2 Cleaned up Arch Linux detection routine |
58 | 58 | |
59 | 1.6.9rc1 | |
59 | 1.6.9 | |
60 | 60 | === |
61 | 61 | b398bd8 (#14334) Fix dmidecode based facts on DragonFly BSD |
62 | 62 | 6c46b2c (#14332) Correct stubbing on Ubuntu |
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 |
12 | 12 | Facter.add(:lsbdistcodename) do |
13 | 13 | confine :kernel => [ :linux, :"gnu/kfreebsd" ] |
14 | 14 | setcode do |
15 | Facter::Util::Resolution.exec('lsb_release -c -s') | |
15 | Facter::Util::Resolution.exec('lsb_release -c -s 2>/dev/null') | |
16 | 16 | end |
17 | 17 | end |
12 | 12 | Facter.add(:lsbdistdescription) do |
13 | 13 | confine :kernel => [ :linux, :"gnu/kfreebsd" ] |
14 | 14 | setcode do |
15 | if output = Facter::Util::Resolution.exec('lsb_release -d -s') | |
15 | if output = Facter::Util::Resolution.exec('lsb_release -d -s 2>/dev/null') | |
16 | 16 | # the output may be quoted (at least it is on gentoo) |
17 | 17 | output.sub(/^"(.*)"$/,'\1') |
18 | 18 | end |
12 | 12 | Facter.add(:lsbdistid) do |
13 | 13 | confine :kernel => [ :linux, :"gnu/kfreebsd" ] |
14 | 14 | setcode do |
15 | Facter::Util::Resolution.exec('lsb_release -i -s') | |
15 | Facter::Util::Resolution.exec('lsb_release -i -s 2>/dev/null') | |
16 | 16 | end |
17 | 17 | end |
12 | 12 | Facter.add(:lsbdistrelease) do |
13 | 13 | confine :kernel => [ :linux, :"gnu/kfreebsd" ] |
14 | 14 | setcode do |
15 | Facter::Util::Resolution.exec('lsb_release -r -s') | |
15 | Facter::Util::Resolution.exec('lsb_release -r -s 2>/dev/null') | |
16 | 16 | end |
17 | 17 | end |
12 | 12 | Facter.add(:lsbrelease) do |
13 | 13 | confine :kernel => [ :linux, :"gnu/kfreebsd" ] |
14 | 14 | setcode do |
15 | Facter::Util::Resolution.exec('lsb_release -v -s') | |
15 | Facter::Util::Resolution.exec('lsb_release -v -s 2>/dev/null') | |
16 | 16 | end |
17 | 17 | end |
9 | 9 | Facter.fact(:kernel).stubs(:value).returns kernel |
10 | 10 | end |
11 | 11 | |
12 | it "should return the codename through lsb_release -c -s" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -c -s').returns 'n/a' | |
12 | it "should return the codename through lsb_release -c -s 2>/dev/null" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -c -s 2>/dev/null').returns 'n/a' | |
14 | 14 | Facter.fact(:lsbdistcodename).value.should == 'n/a' |
15 | 15 | end |
16 | 16 | |
17 | 17 | it "should return nil if lsb_release is not installed" do |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -c -s').returns nil | |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -c -s 2>/dev/null').returns nil | |
19 | 19 | Facter.fact(:lsbdistcodename).value.should be_nil |
20 | 20 | end |
21 | 21 | end |
9 | 9 | Facter.fact(:kernel).stubs(:value).returns kernel |
10 | 10 | end |
11 | 11 | |
12 | it "should return the description through lsb_release -d -s" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -d -s').returns '"Gentoo Base System release 2.1"' | |
12 | it "should return the description through lsb_release -d -s 2>/dev/null" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -d -s 2>/dev/null').returns '"Gentoo Base System release 2.1"' | |
14 | 14 | Facter.fact(:lsbdistdescription).value.should == 'Gentoo Base System release 2.1' |
15 | 15 | end |
16 | 16 | |
17 | 17 | it "should return nil if lsb_release is not installed" do |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -d -s').returns nil | |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -d -s 2>/dev/null').returns nil | |
19 | 19 | Facter.fact(:lsbdistdescription).value.should be_nil |
20 | 20 | end |
21 | 21 | end |
9 | 9 | Facter.fact(:kernel).stubs(:value).returns kernel |
10 | 10 | end |
11 | 11 | |
12 | it "should return the id through lsb_release -i -s" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -i -s').returns 'Gentoo' | |
12 | it "should return the id through lsb_release -i -s 2>/dev/null" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -i -s 2>/dev/null').returns 'Gentoo' | |
14 | 14 | Facter.fact(:lsbdistid).value.should == 'Gentoo' |
15 | 15 | end |
16 | 16 | |
17 | it "should return nil if lsb_release is not installed" do | |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -i -s').returns nil | |
17 | it "should return nil if lsb_release is not installed 2>/dev/null" do | |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -i -s 2>/dev/null').returns nil | |
19 | 19 | Facter.fact(:lsbdistid).value.should be_nil |
20 | 20 | end |
21 | 21 | end |
9 | 9 | Facter.fact(:kernel).stubs(:value).returns kernel |
10 | 10 | end |
11 | 11 | |
12 | it "should return the release through lsb_release -r -s" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -r -s').returns '2.1' | |
12 | it "should return the release through lsb_release -r -s 2>/dev/null" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -r -s 2>/dev/null').returns '2.1' | |
14 | 14 | Facter.fact(:lsbdistrelease).value.should == '2.1' |
15 | 15 | end |
16 | 16 | |
17 | 17 | it "should return nil if lsb_release is not installed" do |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -r -s').returns nil | |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -r -s 2>/dev/null').returns nil | |
19 | 19 | Facter.fact(:lsbdistrelease).value.should be_nil |
20 | 20 | end |
21 | 21 | end |
9 | 9 | Facter.fact(:kernel).stubs(:value).returns kernel |
10 | 10 | end |
11 | 11 | |
12 | it "should return the release through lsb_release -v -s" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -v -s').returns 'n/a' | |
12 | it "should return the release through lsb_release -v -s 2>/dev/null" do | |
13 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -v -s 2>/dev/null').returns 'n/a' | |
14 | 14 | Facter.fact(:lsbrelease).value.should == 'n/a' |
15 | 15 | end |
16 | 16 | |
17 | 17 | it "should return nil if lsb_release is not installed" do |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -v -s').returns nil | |
18 | Facter::Util::Resolution.stubs(:exec).with('lsb_release -v -s 2>/dev/null').returns nil | |
19 | 19 | Facter.fact(:lsbrelease).value.should be_nil |
20 | 20 | end |
21 | 21 | end |