debian_release.rb 925 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. begin
  2. require 'facter/util/debian'
  3. rescue LoadError
  4. require "#{File.dirname(__FILE__)}/util/debian"
  5. end
  6. def debian_codename_to_release(codename)
  7. stable = Facter::Util::Debian::STABLE
  8. versions = Facter::Util::Debian::CODENAMES.invert
  9. release = nil
  10. if codename == "sid"
  11. release = "unstable"
  12. elsif versions.has_key? codename
  13. version = versions[codename].to_i
  14. if version == stable
  15. release = "stable"
  16. elsif version < stable
  17. release = "stable"
  18. for i in version..stable - 1
  19. release = "old" + release
  20. end
  21. elsif version == stable + 1
  22. release = "testing"
  23. end
  24. end
  25. if release.nil?
  26. Facter.warn("Could not determine release from codename #{codename}!")
  27. end
  28. return release
  29. end
  30. Facter.add(:debian_release) do
  31. has_weight 99
  32. confine :operatingsystem => 'Debian'
  33. setcode do
  34. debian_codename_to_release(Facter.value('debian_codename'))
  35. end
  36. end