91 lines
2.6 KiB
Puppet
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}"
|
|
}
|
|
}
|
|
}
|