summaryrefslogtreecommitdiff
path: root/manifests/preferences_snippet.pp
diff options
context:
space:
mode:
authorGabriel Filion <lelutin@gmail.com>2010-10-25 00:14:33 -0400
committerGabriel Filion <lelutin@gmail.com>2010-10-25 00:14:33 -0400
commitd97a49b7b2c020c2c43df6524236f50a421789ee (patch)
tree80702221488e6cbfe527a6d3a153708441d1e5bc /manifests/preferences_snippet.pp
parentac76a5d52df78aec919f08334ca5b140902a9298 (diff)
refactor: simplify and remove inline content
Simplifications: make apt_conf_snippet repeat less code, make code that generates sources.list more concise. Remove all inline content in favor of templates and static files. The ability to include sources for static files was needed for the main 'preferences' file, so it was added to the preferences_snippet define. Signed-off-by: Gabriel Filion <lelutin@gmail.com>
Diffstat (limited to 'manifests/preferences_snippet.pp')
-rw-r--r--manifests/preferences_snippet.pp22
1 files changed, 17 insertions, 5 deletions
diff --git a/manifests/preferences_snippet.pp b/manifests/preferences_snippet.pp
index 21dfe86..a723206 100644
--- a/manifests/preferences_snippet.pp
+++ b/manifests/preferences_snippet.pp
@@ -1,17 +1,29 @@
define apt::preferences_snippet(
$ensure = 'present',
+ $source = '',
$release,
$priority
){
include apt::preferences
+
file { "${apt::preferences::apt_preferences_dir}/${name}":
ensure => $ensure,
- content => "Package: ${name}
-Pin: release a=${release}
-Pin-Priority: ${priority}
-
-",
+ #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
+ }
+ }
}