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"]]
  }

}