diff --git a/manifests/core.pp b/manifests/core.pp index 0688d8f..9e7e735 100755 --- a/manifests/core.pp +++ b/manifests/core.pp @@ -1,7 +1,8 @@ +# Create a type for "wp core" commands define wp::core ( - $location = $title, + $location = $title, $url, - $siteurl = $url, + $siteurl = $url, $sitename = 'WordPress Site', $admin_user = 'admin', $admin_email = 'admin@example.com', @@ -14,29 +15,44 @@ if ( $network == true ) and ( $subdomains == true ) { $install = "multisite-install --subdomains --url='$url'" + $convert = "multisite-convert --subdomains --url='$url'" } elsif ( $network == true ) { $install = "multisite-install --url='$url'" + $convert = "multisite-convert --url='$url'" } else { $install = "install --url='$url'" } - exec {"wp install $location": - command => "/usr/bin/wp core $install --title='$sitename' --admin_email='$admin_email' --admin_name='$admin_user' --admin_password='$admin_password'", - cwd => $location, - user => $user, - require => [ Class['wp::cli'] ], - unless => '/usr/bin/wp core is-installed' + if ( $network ) { + exec {"wp multisite-convert ${location}": + command => "/usr/bin/wp core ${convert}", + cwd => $location, + logoutput => true, + user => $user, + require => Class['wp::cli'], + before => Exec[ "wp install ${location}" ], + onlyif => '/usr/bin/wp core is-installed', + unless => '/usr/bin/wp core is-installed --network', + } + } + + exec {"wp install ${location}": + command => "/usr/bin/wp core ${install} --title='${sitename}' --admin_email='${admin_email}' --admin_user='${admin_user}' --admin_password='${admin_password}'", + cwd => $location, + user => $user, + require => Class['wp::cli'], + unless => '/usr/bin/wp core is-installed' } if $siteurl != $url { - wp::option {"wp siteurl $location": + wp::option {"wp siteurl ${location}": location => $location, - ensure => "equal", - user => $user, - key => "siteurl", - value => $siteurl + ensure => "equal", + user => $user, + key => "siteurl", + value => $siteurl } } } diff --git a/manifests/site.pp b/manifests/site.pp index 6a189ab..b6253d7 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -2,6 +2,7 @@ define wp::site ( $aliases, $location, + $user = $::wp::user ) { include wp::cli @@ -10,7 +11,6 @@ location => $location, } } - # Create a type for "wp site create" define create_subsite ( $aliases, @@ -24,12 +24,12 @@ if ( $slug ) { exec { "wp site create --slug=${slug}": cwd => $location, - user => $::wp::user, + user => $user, command => "/usr/bin/wp site create --slug=${slug}", unless => "/usr/bin/wp site list | grep $slug", require => Class['wp::cli'], onlyif => "/usr/bin/wp core is-installed", logoutput => true } - } + } }