aboutsummaryrefslogtreecommitdiff
path: root/manifests/preferences_snippet.pp
blob: 4b8e575e5fc38912792f1b3e1e9aac0ffdc95f94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
define apt::preferences_snippet(
  $ensure = 'present',
  $source = '',
  $release,
  $priority )
{

  if $custom_preferences == false {
    fail("Trying to define a preferences_snippet with \$custom_preferences set to false.")
  }

  include apt::preferences

  file { "${apt::preferences::apt_preferences_dir}/${name}":
    ensure => $ensure,
    #TODO this template is somewhat limited
    notify => Exec["concat_${apt::preferences::apt_preferences_dir}"],
    owner => root, group => 0, mode => 0600;
  }

  # This should really work in the same manner as sources_list and apt_conf
  # snippets, but since the preferences.d directory cannot be used in Debian
  # lenny, we can't generalize without going into ugly special-casing.
  case $source {
    '': {
      File["${apt::preferences::apt_preferences_dir}/${name}"] {
        content => template("apt/preferences_snippet.erb")
      }
    }
    default: {
      File["${apt::preferences::apt_preferences_dir}/${name}"] {
        source => $source
      }
    }
  }
}