/**
* Sets a script running on the backend.
*
* @param array $script The filter script information. Passed elements:
* - 'name': (string) the script name.
* - 'recipes': (array) the filter recipe objects.
* - 'script': (string) the filter script.
*
* @throws Ingo_Exception
*/
public function setScriptActive($script)
{
$this->_connect();
try {
if (!strlen($script['script'])) {
$this->_sieve->setActive('');
$this->_sieve->removeScript($script['name']);
return;
}
if (!$this->_sieve->hasSpace($script['name'], strlen($script['script']))) {
throw new Ingo_Exception(_("Not enough free space on the server."));
}
$this->_sieve->installScript($script['name'], $script['script'], true);
} catch (ManageSieve\Exception $e) {
throw new Ingo_Exception($e);
}
}