summaryrefslogtreecommitdiff
path: root/manifests/package.pp
diff options
context:
space:
mode:
authorVarac <varac@leap.se>2017-06-27 13:57:43 +0200
committerVarac <varac@leap.se>2017-06-27 13:57:43 +0200
commit3bed48fba6ae35813b8c4413887aba5262c43689 (patch)
tree75595f81892da069002af27f361c41ac6381cd96 /manifests/package.pp
parent5d001efb65f4ac2afa39d17b7b62d4f861f450a3 (diff)
parentf3db3309f3a3fc5ee0f621593ed83805798f7890 (diff)
Merge remote-tracking branch 'shared/master' into leap_master
Diffstat (limited to 'manifests/package.pp')
-rw-r--r--manifests/package.pp43
1 files changed, 43 insertions, 0 deletions
diff --git a/manifests/package.pp b/manifests/package.pp
new file mode 100644
index 0000000..e83ac68
--- /dev/null
+++ b/manifests/package.pp
@@ -0,0 +1,43 @@
+# Install a package with a preseed file to automatically answer some questions.
+define apt::package (
+ $ensure = 'present',
+ $use_seed = false,
+ $seedfile_template = "site_apt/${::debian_codename}/${name}.seeds",
+ $seedfile_content = '',
+ $pin = '',
+ $pin_priority = 1000
+) {
+
+ package { $name:
+ ensure => $ensure,
+ responsefile => $seedfile,
+ }
+
+ if $use_seed {
+ $seedfile = "/var/cache/local/preseeding/${name}.seeds"
+ $real_seedfile_content = $seedfile_content ? {
+ '' => template ( $seedfile_template ),
+ default => $seedfile_content,
+ }
+
+ file { $seedfile:
+ content => $real_seedfile_content,
+ mode => '0600',
+ owner => 'root',
+ group => 0,
+ }
+
+ File[$seedfile] -> Package[$name]
+ }
+
+ if $pin {
+ apt::preferences_snippet { $name:
+ ensure => $ensure,
+ priority => $pin_priority,
+ pin => $pin,
+ }
+
+ Apt::Preferences_snippet[$name] -> Package[$name]
+ }
+
+}