puppet-wp/manifests/core.pp
2019-09-13 16:26:47 +10:00

58 lines
1.6 KiB
Puppet
Executable file

# Create a type for "wp core" commands
define wp::core (
$location = $title,
$url,
$siteurl = $url,
$sitename = 'WordPress Site',
$admin_user = 'admin',
$admin_email = 'admin@example.com',
$admin_password = 'password',
$network = false,
$subdomains = false,
$user = $::wp::user,
) {
include wp::cli
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'"
}
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}":
location => $location,
ensure => "equal",
user => $user,
key => "siteurl",
value => $siteurl
}
}
}