| Index: modules/nginx/manifests/init.pp | 
| =================================================================== | 
| --- a/modules/nginx/manifests/init.pp | 
| +++ b/modules/nginx/manifests/init.pp | 
| @@ -41,45 +41,83 @@ class nginx ( | 
| require => Package['nginx'] | 
| } | 
| file {'/etc/nginx/sites-enabled': | 
| ensure => directory, | 
| require => Package['nginx'] | 
| } | 
| - file {'/etc/nginx/sites-available/default': | 
| - ensure => absent, | 
| - require => Package['nginx'] | 
| - } | 
| + define hostconfig ( | 
| + $domain = $title, | 
| + $alt_names = [], | 
| + $log, | 
| + $is_default = false, | 
| + $source = undef, | 
| + $content = undef, | 
| + $global_config = undef, | 
| + $certificate = undef, | 
| + $private_key = undef, | 
| + $enabled = true) { | 
| + file {"/etc/nginx/sites-available/${domain}": | 
| + ensure => file, | 
| + content => template('nginx/site.erb'), | 
| + require => Package['nginx'], | 
| + notify => Service['nginx'], | 
| + } | 
| - define hostconfig ($file = $title, $source = undef, $content = undef, $enabled = false) { | 
| - if $content != undef { | 
| - file {"/etc/nginx/sites-available/${file}": | 
| - ensure => file, | 
| - content => $content, | 
| - require => Package['nginx'], | 
| - notify => Service['nginx'], | 
| + if $certificate and $private_key { | 
| + if !defined(File["/etc/nginx/${certificate}"]) { | 
| + file {"/etc/nginx/${certificate}": | 
| + ensure => file, | 
| + mode => 0400, | 
| + notify => Service['nginx'], | 
| + before => File["/etc/nginx/sites-available/${domain}"], | 
| + require => Package['nginx'], | 
| + source => "puppet:///modules/private/${certificate}" | 
| + } | 
| + } | 
| + | 
| + if !defined(File["/etc/nginx/${private_key}"]) { | 
| + file {"/etc/nginx/${private_key}": | 
| + ensure => file, | 
| + mode => 0400, | 
| + notify => Service['nginx'], | 
| + before => File["/etc/nginx/sites-available/${domain}"], | 
| + require => Package['nginx'], | 
| + source => "puppet:///modules/private/${private_key}" | 
| + } | 
| + } | 
| + | 
| + if !defined(File["/etc/nginx/sites-available/${certificate}"]) { | 
| + file {"/etc/nginx/sites-available/${certificate}": | 
| + ensure => absent | 
| + } | 
| + } | 
| + | 
| + if !defined(File["/etc/nginx/sites-available/${private_key}"]) { | 
| + file {"/etc/nginx/sites-available/${private_key}": | 
| + ensure => absent | 
| + } | 
| } | 
| } | 
| - else { | 
| - file {"/etc/nginx/sites-available/${file}": | 
| - ensure => file, | 
| - source => $source, | 
| - require => Package['nginx'], | 
| - notify => Service['nginx'], | 
| + | 
| + if $enabled == true { | 
| + file {"/etc/nginx/sites-enabled/${domain}": | 
| + ensure => link, | 
| + require => File["/etc/nginx/sites-available/${domain}"], | 
| + target => "/etc/nginx/sites-available/${domain}", | 
| + notify => Service['nginx'] | 
| } | 
| } | 
| - if $enabled == true { | 
| - file {"/etc/nginx/sites-enabled/${file}": | 
| - ensure => link, | 
| - require => File["/etc/nginx/sites-available/${file}"], | 
| - target => "/etc/nginx/sites-available/${file}", | 
| - notify => Service['nginx'] | 
| - } | 
| + | 
| + file {"/etc/logrotate.d/nginx_$domain": | 
| + ensure => file, | 
| + require => File["/etc/nginx/sites-available/${domain}"], | 
| + content => template('nginx/logrotate.erb') | 
| } | 
| } | 
| file {'/etc/logrotate.d/nginx': | 
| source => 'puppet:///modules/nginx/logrotate', | 
| require => Package['nginx'] | 
| } |