sources_list.pp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. define apt::sources_list (
  2. $ensure = 'present',
  3. $source = '',
  4. $content = undef
  5. ) {
  6. if $ensure == 'present' {
  7. if $source == '' and $content == undef {
  8. fail("One of \$source or \$content must be specified for apt_sources_snippet ${name}")
  9. }
  10. if $source != '' and $content != undef {
  11. fail("Only one of \$source or \$content must specified for apt_sources_snippet ${name}")
  12. }
  13. }
  14. include apt::dot_d_directories
  15. $realname = regsubst($name, '\.list$', '')
  16. # One would expect the 'file' resource on sources.list.d to trigger an
  17. # apt-get update when files are added or modified in the directory, but it
  18. # apparently doesn't.
  19. file { "/etc/apt/sources.list.d/${realname}.list":
  20. ensure => $ensure,
  21. owner => root, group => 0, mode => '0644',
  22. notify => Exec['refresh_apt'],
  23. }
  24. if $source {
  25. File["/etc/apt/sources.list.d/${realname}.list"] {
  26. source => $source,
  27. }
  28. }
  29. else {
  30. File["/etc/apt/sources.list.d/${realname}.list"] {
  31. content => $content,
  32. }
  33. }
  34. }