puppet 4 foo
[mirror/dsa-puppet.git] / modules / debian_org / lib / facter / lsb-for-bsd.rb
diff --git a/modules/debian_org/lib/facter/lsb-for-bsd.rb b/modules/debian_org/lib/facter/lsb-for-bsd.rb
new file mode 100644 (file)
index 0000000..c95d7f2
--- /dev/null
@@ -0,0 +1,24 @@
+{  "LSBRelease"         => %r{^LSB Version:\t(.*)$},
+   "LSBDistId"          => %r{^Distributor ID:\t(.*)$},
+   "LSBDistRelease"     => %r{^Release:\t(.*)$},
+   "LSBDistDescription" => %r{^Description:\t(.*)$},
+   "LSBDistCodeName"    => %r{^Codename:\t(.*)$}
+}.each do |fact, pattern|
+    Facter.add(fact) do
+        confine :kernel => 'GNU/kFreeBSD'
+        setcode do
+            unless defined?(lsbdata) and defined?(lsbtime) and (Time.now.to_i - lsbtime.to_i < 5)
+                type = nil
+                lsbtime = Time.now
+                lsbdata = Facter::Util::Resolution.exec('lsb_release -a 2>/dev/null')
+            end
+
+            if pattern.match(lsbdata)
+                $1
+            else
+                nil
+            end
+        end
+    end
+end
+