diff options
| author | intrigeri <intrigeri@boum.org> | 2012-06-08 18:30:23 +0200 | 
|---|---|---|
| committer | intrigeri <intrigeri@boum.org> | 2012-06-08 18:30:23 +0200 | 
| commit | 2e4d22ddd948b6d6f1532654e3dea53fa4b9f7d1 (patch) | |
| tree | 273d8f82a71af7fbcac5f17f7ac21c2c403ad638 | |
| parent | 13a0b4484fc85be0821f0b72c11c9487c890b546 (diff) | |
| download | puppet-apt-2e4d22ddd948b6d6f1532654e3dea53fa4b9f7d1.tar.gz puppet-apt-2e4d22ddd948b6d6f1532654e3dea53fa4b9f7d1.tar.bz2  | |
Allow passing arbitrary Pin value to apt::preferences_snippet.
Closes: Redmine#3467.
| -rw-r--r-- | README | 6 | ||||
| -rw-r--r-- | manifests/preferences_snippet.pp | 23 | ||||
| -rw-r--r-- | templates/preferences_snippet.erb | 2 | ||||
| -rw-r--r-- | templates/preferences_snippet_release.erb | 4 | 
4 files changed, 31 insertions, 4 deletions
@@ -321,6 +321,12 @@ Example:        priority => 1;    } +  apt::preferences_snippet{ +    'ttdnsd': +      pin => 'origin deb.torproject.org', +      priority => 999; +  } +  apt::preseeded_package  ---------------------- diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp index 908ca73..e00c4d1 100644 --- a/manifests/preferences_snippet.pp +++ b/manifests/preferences_snippet.pp @@ -2,7 +2,8 @@ define apt::preferences_snippet(    $package = $name,    $ensure = 'present',    $source = '', -  $release, +  $release = '', +  $pin = '',    $priority )  { @@ -10,6 +11,13 @@ define apt::preferences_snippet(      fail("Trying to define a preferences_snippet with \$custom_preferences set to false.")    } +  if !$pin and !$release { +    fail("apt::preferences_snippet requires one of the 'pin' or 'release' argument to be set") +  } +  if $pin and $release { +    fail("apt::preferences_snippet requires either a 'pin' or 'release' argument, not both") +  } +    include apt::preferences    concat::fragment{"apt_preference_${name}": @@ -22,8 +30,17 @@ define apt::preferences_snippet(    # lenny, we can't generalize without going into ugly special-casing.    case $source {      '': { -      Concat::Fragment["apt_preference_${name}"]{ -        content => template("apt/preferences_snippet.erb") +      case $release { +        '': { +          Concat::Fragment["apt_preference_${name}"]{ +            content => template("apt/preferences_snippet.erb") +          } +        } +        default: { +          Concat::Fragment["apt_preference_${name}"]{ +            content => template("apt/preferences_snippet_release.erb") +          } +        }        }      }      default: { diff --git a/templates/preferences_snippet.erb b/templates/preferences_snippet.erb index 0c4e136..fd15ce6 100644 --- a/templates/preferences_snippet.erb +++ b/templates/preferences_snippet.erb @@ -1,4 +1,4 @@  Package: <%= package %> -Pin: release a=<%= release %> +Pin: <%= pin %>  Pin-Priority: <%= priority %> diff --git a/templates/preferences_snippet_release.erb b/templates/preferences_snippet_release.erb new file mode 100644 index 0000000..0c4e136 --- /dev/null +++ b/templates/preferences_snippet_release.erb @@ -0,0 +1,4 @@ +Package: <%= package %> +Pin: release a=<%= release %> +Pin-Priority: <%= priority %> +  | 
