diff --git a/manifests/repo.pp b/manifests/repo.pp index 4d80dd1..81f1c4f 100644 --- a/manifests/repo.pp +++ b/manifests/repo.pp @@ -4,12 +4,15 @@ # better. define pkgng::repo ( - $packagehost = $name, - $protocol = 'http', - $mirror_type = 'srv', - $repopath = '/${ABI}/latest', - $enabled = true, - $priority = 0, + $packagehost = $name, + $protocol = 'http', + $mirror_type = 'srv', + $repopath = '/${ABI}/latest', + $enabled = true, + $priority = 0, + $signature_type = '', + $pubkey = '', + $fingerprints = '', ) { include ::pkgng @@ -38,6 +41,20 @@ define pkgng::repo ( } validate_integer($priority, 100) + validate_string($signature_type) + validate_absolute_path($pubkey) + + if ($pubkey != "") { + if ($signature_type != "" and $signature_type !~ /(?ix:pubkey)/) { + fail("Signature_type should be \"pubkey\"!") + } + } + if ($fingerprints != "") { + if ($signature_type != "" and $signature_type !~ /(?ix:fingerprints)/) { + fail("Signature_type should be \"fingerprints\"!") + } + } + # define repository configuration file { "/usr/local/etc/pkg/repos/${name}.conf": content => template("${module_name}/repo.erb"), diff --git a/templates/repo.erb b/templates/repo.erb index 5c4c5be..35842bd 100644 --- a/templates/repo.erb +++ b/templates/repo.erb @@ -1,8 +1,12 @@ # File managed by Puppet <%= @name -%>: { - url: "<% if @mirror_type =~ /srv/i %>pkg+<% end %><%= @protocol %>://<%= @packagehost %><%= @repopath %>", - mirror_type: "<%= @mirror_type %>", - enabled: <% if @enabled == true or @enabled == 'yes' %>yes<% else %>no<% end %>, - priority: <%= @priority %> + url: "<% if @mirror_type =~ /srv/i %>pkg+<% end %><%= @protocol %>://<%= @packagehost %><%= @repopath %>", + mirror_type: "<%= @mirror_type %>", + enabled: "<% if @enabled == true or @enabled == 'yes' %>yes<% else %>no<% end %>", + priority: "<%= @priority %>" + <% if @pubkey != '' %>pubkey: "<%= @pubkey %>" + signature_type: "pubkey"<% end %> + <% if @fingerprints != '' %>fingerprints: "<%= @fingerprints %>" + signature_type: "fingerprints"<% end %> }