class etherpad_lite::mysql { include etherpad_lite package { 'mysql-server': ensure => present } package { 'mysql-client': ensure => present } service { "mysql": enable => true, ensure => running, hasrestart => true, require => [Package['mysql-server'], Package['mysql-client']] } exec { "create-etherpad-lite-db": unless => 'mysql --defaults-file=/etc/mysql/debian.cnf etherpad-lite', path => ['/bin', '/usr/bin'], command => "mysql --defaults-file=/etc/mysql/debian.cnf -e \"create database \`etherpad-lite\` CHARACTER SET utf8 COLLATE utf8_bin;\"", require => [Service['mysql'], File["${etherpad_lite::base_install_dir}/etherpad-lite/settings.json"]] } -> exec { "grant-etherpad-lite-db": unless => "mysql -ueplite -p'`grep password ${etherpad_lite::base_install_dir}/etherpad-lite/settings.json | cut -d: -f2 | sed -e 's/.*\"\(.*\)\".*/\1/'`' etherpad-lite", path => ['/bin', '/usr/bin'], command => "mysql --defaults-file=/etc/mysql/debian.cnf -e \"grant all on \`etherpad-lite\`.* to 'eplite'@'localhost' identified by '`grep password ${etherpad_lite::base_install_dir}/etherpad-lite/settings.json | cut -d: -f2 | sed -e 's/.*\"\(.*\)\".*/\1/'`';\" mysql", require => [Service['mysql'], File["${etherpad_lite::base_install_dir}/etherpad-lite/settings.json"]] } }