+ if $include_src != undef and $include_deb != undef {
+ $_deprecated_include = {
+ 'src' => $include_src,
+ 'deb' => $include_deb,
+ }
+ } elsif $include_src != undef {
+ $_deprecated_include = { 'src' => $include_src }
+ } elsif $include_deb != undef {
+ $_deprecated_include = { 'deb' => $include_deb }
+ } else {
+ $_deprecated_include = {}
+ }
+
+ $includes = merge($::apt::include_defaults, $_deprecated_include, $include)
+
+ $_deprecated_key = {
+ 'key_server' => $key_server,
+ 'key_content' => $key_content,
+ 'key_source' => $key_source,
+ }
+
+ if $key {
+ if is_hash($key) {
+ unless $key['id'] {
+ fail('key hash must contain at least an id entry')
+ }
+ $_key = merge($::apt::source_key_defaults, $_deprecated_key, $key)
+ } else {
+ validate_legacy(String, 'validate_string', $key)
+ $_key = merge( { 'id' => $key }, $_deprecated_key)
+ }
+ }
+
+ $header = epp('apt/_header.epp')
+
+ $sourcelist = epp('apt/source.list.epp', {
+ 'comment' => $comment,
+ 'includes' => $includes,
+ 'architecture' => $architecture,
+ 'allow_unsigned' => $_allow_unsigned,
+ 'location' => $location,
+ 'release' => $_release,
+ 'repos' => $repos,
+ })
+
+ apt::setting { "list-${name}":
+ ensure => $ensure,
+ content => "${header}${sourcelist}",
+ notify_update => $notify_update,
+ }