force.pp 588 B

123456789101112131415161718192021222324
  1. # force.pp
  2. # force a package from a specific release
  3. define apt::force(
  4. $release = 'testing',
  5. $version = false,
  6. $timeout = 300
  7. ) {
  8. $version_string = $version ? {
  9. false => undef,
  10. default => "=${version}",
  11. }
  12. $install_check = $version ? {
  13. false => "/usr/bin/dpkg -s ${name} | grep -q 'Status: install'",
  14. default => "/usr/bin/dpkg -s ${name} | grep -q 'Version: ${version}'",
  15. }
  16. exec { "/usr/bin/aptitude -y -t ${release} install ${name}${version_string}":
  17. unless => $install_check,
  18. logoutput => 'on_failure',
  19. timeout => $timeout,
  20. }
  21. }