summaryrefslogtreecommitdiff
path: root/manifests/preferences_snippet.pp
blob: 9da7a8efb7c26ff80662445a49f4ffaf3948ae31 (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
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
      }
  }
}