These operating systems all use a similar format for the release file.

Signed-off-by: Todd Zullinger <[email protected]>
---
 lib/facter/operatingsystemrelease.rb |   62 ++++++----------------------------
 1 files changed, 11 insertions(+), 51 deletions(-)

diff --git a/lib/facter/operatingsystemrelease.rb 
b/lib/facter/operatingsystemrelease.rb
index 25a226d..2f76817 100644
--- a/lib/facter/operatingsystemrelease.rb
+++ b/lib/facter/operatingsystemrelease.rb
@@ -1,21 +1,17 @@
 Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => :fedora
+    confine :operatingsystem => %w{CentOS Fedora oel ovs RedHat}
     setcode do
-        File::open("/etc/fedora-release", "r") do |f|
-            line = f.readline.chomp
-            if line =~ /\(Rawhide\)$/
-                "Rawhide"
-            elsif line =~ /release (\d+)/
-                $1
-            end
+        case Facter.value(:operatingsystem)
+        when "CentOS", "RedHat"
+            releasefile = "/etc/redhat-release"
+        when "Fedora"
+            releasefile = "/etc/fedora-release"
+        when "oel"
+            releasefile = "/etc/enterprise-release"
+        when "ovs"
+            releasefile = "/etc/ovs-release"
         end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => %w{RedHat}
-    setcode do
-        File::open("/etc/redhat-release", "r") do |f|
+        File::open(releasefile, "r") do |f|
             line = f.readline.chomp
             if line =~ /\(Rawhide\)$/
                 "Rawhide"
@@ -27,42 +23,6 @@ Facter.add(:operatingsystemrelease) do
 end

 Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => :oel
-    setcode do
-        File::open("/etc/enterprise-release", "r") do |f|
-            line = f.readline.chomp
-            if line =~ /release (\d+)/
-                $1
-            end
-        end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => :ovs
-    setcode do
-        File::open("/etc/ovs-release", "r") do |f|
-            line = f.readline.chomp
-            if line =~ /release (\d+)/
-                $1
-            end
-        end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
-    confine :operatingsystem => %w{CentOS}
-    setcode do
-        centos_release = Facter::Util::Resolution.exec("sed -r -e 's/CentOS 
release //' -e 's/ \((Branch|Final)\)//' /etc/redhat-release")
-        if centos_release =~ /5/
-            release = Facter::Util::Resolution.exec('rpm -q --qf 
\'%{VERSION}.%{RELEASE}\' centos-release | cut -d. -f1,2')
-        else
-            release = centos_release
-        end
-    end
-end
-
-Facter.add(:operatingsystemrelease) do
     confine :operatingsystem => %w{Debian}
     setcode do
         release = Facter::Util::Resolution.exec('cat /etc/debian_version')
-- 
1.6.2

-- 
Todd        OpenPGP -> KeyID: 0xBEAF0CE3 | URL: www.pobox.com/~tmz/pgp
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Does it follow that I reject all authority? Perish the thought. In the
matter of boots, I defer to the authority of the boot-maker.
    -- Mikhail Bakunin


--~--~---------~--~----~------------~-------~--~----~
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