debian_codename.rb 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. begin
  2. require 'facter/util/debian'
  3. rescue LoadError
  4. require "#{File.dirname(__FILE__)}/util/debian"
  5. end
  6. def version_to_codename(version)
  7. if Facter::Util::Debian::CODENAMES.has_key?(version)
  8. return Facter::Util::Debian::CODENAMES[version]
  9. else
  10. Facter.warn("Could not determine codename from version '#{version}'")
  11. end
  12. end
  13. Facter.add(:debian_codename) do
  14. has_weight 99
  15. confine :operatingsystem => 'Debian'
  16. setcode do
  17. Facter.value('lsbdistcodename')
  18. end
  19. end
  20. Facter.add(:debian_codename) do
  21. has_weight 66
  22. confine :operatingsystem => 'Debian'
  23. setcode do
  24. version_to_codename(Facter.value('operatingsystemmajrelease'))
  25. end
  26. end
  27. Facter.add(:debian_codename) do
  28. has_weight 33
  29. confine :operatingsystem => 'Debian'
  30. setcode do
  31. debian_version = File.open('/etc/debian_version', &:readline)
  32. if debian_version.match(/^\d+/)
  33. version_to_codename(debian_version.scan(/^(\d+)/)[0][0])
  34. elsif debian_version.match(/^[a-z]+\/(sid|unstable)/)
  35. debian_version.scan(/^([a-z]+)\//)[0][0]
  36. end
  37. end
  38. end