diff options
author | varac <varacanero@zeromail.org> | 2016-06-09 17:30:41 +0200 |
---|---|---|
committer | varac <varacanero@zeromail.org> | 2016-06-14 12:05:18 +0200 |
commit | 9d052b926b5cf67b8f8751af46ea5771d4422284 (patch) | |
tree | 6d2197ec5461fb4df424b10e0982aa16dfcc9c3d /puppet/modules/apt/manifests/preferences_snippet.pp | |
parent | 4c0ffdbd5d910131c139271761cb55272a2c5dc1 (diff) |
git subrepo clone https://leap.se/git/puppet_apt puppet/modules/apt
subrepo:
subdir: "puppet/modules/apt"
merged: "33c61e8"
upstream:
origin: "https://leap.se/git/puppet_apt"
branch: "master"
commit: "33c61e8"
git-subrepo:
version: "0.3.0"
origin: "https://github.com/ingydotnet/git-subrepo.git"
commit: "cb2995b"
Diffstat (limited to 'puppet/modules/apt/manifests/preferences_snippet.pp')
-rw-r--r-- | puppet/modules/apt/manifests/preferences_snippet.pp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/puppet/modules/apt/manifests/preferences_snippet.pp b/puppet/modules/apt/manifests/preferences_snippet.pp new file mode 100644 index 00000000..b7dba0d8 --- /dev/null +++ b/puppet/modules/apt/manifests/preferences_snippet.pp @@ -0,0 +1,59 @@ +define apt::preferences_snippet ( + $priority = undef, + $package = false, + $ensure = 'present', + $source = '', + $release = '', + $pin = '' +) { + + $real_package = $package ? { + false => $name, + default => $package, + } + + if $ensure == 'present' { + if $apt::custom_preferences == false { + fail('Trying to define a preferences_snippet with $custom_preferences set to false.') + } + + if $priority == undef { + fail('apt::preferences_snippet requires the \'priority\' argument to be set') + } + + 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') + } + } + + file { "/etc/apt/preferences.d/${name}": + ensure => $ensure, + owner => root, group => 0, mode => '0644', + before => Exec['apt_updated']; + } + + case $source { + '': { + case $release { + '': { + File["/etc/apt/preferences.d/${name}"]{ + content => template('apt/preferences_snippet.erb') + } + } + default: { + File["/etc/apt/preferences.d/${name}"]{ + content => template('apt/preferences_snippet_release.erb') + } + } + } + } + default: { + File["/etc/apt/preferences.d/${name}"]{ + source => $source + } + } + } +} |