begin require 'facter/util/debian' rescue LoadError require "#{File.dirname(__FILE__)}/util/debian" end def debian_codename_to_next(codename, release) if release == "testing" return "sid" elsif release == "unstable" return "experimental" else codenames = Facter::Util::Debian::CODENAMES versions = Facter::Util::Debian::CODENAMES.invert current_version = versions[codename] return codenames[(current_version.to_i + 1).to_s] end end Facter.add(:debian_nextcodename) do confine :operatingsystem => 'Debian' setcode do debian_codename_to_next(Facter.value('debian_codename'), Facter.value('debian_release')) end end