summaryrefslogtreecommitdiff
path: root/manifests/apt_conf.pp
diff options
context:
space:
mode:
authorMicah <micah@leap.se>2016-05-24 10:19:22 -0400
committerMicah <micah@leap.se>2016-05-24 10:19:22 -0400
commitaba291e2de1682620b6dc22446b30fe870b62956 (patch)
tree1ba5e08c285dbf2b60e7be2f59934e6abd5f866c /manifests/apt_conf.pp
Squashed 'puppet/modules/apt/' content from commit 33c61e8
git-subtree-dir: puppet/modules/apt git-subtree-split: 33c61e8df59db1abbed379a9e9790946060a8f1e
Diffstat (limited to 'manifests/apt_conf.pp')
-rw-r--r--manifests/apt_conf.pp45
1 files changed, 45 insertions, 0 deletions
diff --git a/manifests/apt_conf.pp b/manifests/apt_conf.pp
new file mode 100644
index 00000000..949f6157
--- /dev/null
+++ b/manifests/apt_conf.pp
@@ -0,0 +1,45 @@
+define apt::apt_conf(
+ $ensure = 'present',
+ $source = '',
+ $content = undef,
+ $refresh_apt = true )
+{
+
+ if $source == '' and $content == undef {
+ fail("One of \$source or \$content must be specified for apt_conf ${name}")
+ }
+
+ if $source != '' and $content != undef {
+ fail("Only one of \$source or \$content must specified for apt_conf ${name}")
+ }
+
+ include apt::dot_d_directories
+
+ # One would expect the 'file' resource on sources.list.d to trigger an
+ # apt-get update when files are added or modified in the directory, but it
+ # apparently doesn't.
+ file { "/etc/apt/apt.conf.d/${name}":
+ ensure => $ensure,
+ owner => root,
+ group => 0,
+ mode => '0644',
+ }
+
+ if $source {
+ File["/etc/apt/apt.conf.d/${name}"] {
+ source => $source,
+ }
+ }
+ else {
+ File["/etc/apt/apt.conf.d/${name}"] {
+ content => $content,
+ }
+ }
+
+ if $refresh_apt {
+ File["/etc/apt/apt.conf.d/${name}"] {
+ notify => Exec['apt_updated'],
+ }
+ }
+
+}