phpservermon/puphpet/puppet/nodes/Sqlite.pp

91 lines
2.6 KiB
Puppet

if $sqlite_values == undef { $sqlite_values = hiera_hash('sqlite', false) }
if $php_values == undef { $php_values = hiera_hash('php', false) }
if $apache_values == undef { $apache_values = hiera_hash('apache', false) }
if $nginx_values == undef { $nginx_values = hiera_hash('nginx', false) }
if $mailcatcher_values == undef { $mailcatcher_values = hiera_hash('mailcatcher', false) }
include puphpet::params
if hash_key_equals($sqlite_values, 'install', 1) {
if hash_key_equals($php_values, 'install', 1) {
$sqlite_php_installed = true
$sqlite_php_package = 'php'
} elsif hash_key_equals($hhvm_values, 'install', 1) {
$sqlite_php_installed = true
$sqlite_php_package = 'hhvm'
} else {
$sqlite_php_installed = false
}
# puppet manifests for mailcatcher and sqlite are not compatible.
if hash_key_equals($mailcatcher_values, 'install', 0) {
class { 'sqlite': }
}
if is_hash($sqlite_values['databases'])
and count($sqlite_values['databases']) > 0
{
create_resources(sqlite_db, $sqlite_values['databases'])
}
if $sqlite_php_installed
and $sqlite_php_package == 'php'
and ! defined(Puphpet::Php::Pecl['sqlite'])
{
puphpet::php::pecl { 'sqlite':
service_autorestart => true,
}
}
if hash_key_equals($sqlite_values, 'adminer', 1) and $sqlite_php_installed {
if hash_key_equals($apache_values, 'install', 1) {
$sqlite_adminer_webroot_location = $puphpet::params::apache_webroot_location
} elsif hash_key_equals($nginx_values, 'install', 1) {
$sqlite_adminer_webroot_location = $puphpet::params::nginx_webroot_location
} else {
$sqlite_adminer_webroot_location = $puphpet::params::apache_webroot_location
}
class { 'puphpet::adminer':
location => "${sqlite_adminer_webroot_location}/adminer",
owner => 'www-data',
php_package => $sqlite_php_package
}
}
}
define sqlite_db (
$name,
$owner,
$group = 0,
$mode = 0775,
$sql_file = false
) {
if $name == '' or $owner == '' or $mode == '' {
fail( 'SQLite requires that name, owner, group, and mode be set. Please check your settings!' )
}
file { '/var/lib/sqlite':
ensure => directory,
owner => $owner,
group => $group,
mode => 0775,
require => User[$owner]
} ->
sqlite::db { $name:
owner => $owner,
group => $group,
mode => $mode
}
if $sql_file {
exec{ "${name}-import":
command => "cat ${sql_file} | sudo sqlite3 /var/lib/sqlite/${name}.db",
logoutput => true,
refreshonly => $refresh,
require => Sqlite::Db[$name],
onlyif => "test -f ${sql_file}"
}
}
}