public function execute()
 {
     global $CFG, $DB;
     require_once $CFG->dirroot . "/lib/pdflib.php";
     require_once $CFG->dirroot . "/mod/assign/feedback/editpdf/fpdi/fpdi_bridge.php";
     require_once $CFG->dirroot . "/mod/assign/feedback/editpdf/fpdi/fpdi.php";
     require_once $CFG->dirroot . "/mod/emarking/lib/phpqrcode/phpqrcode.php";
     require_once $CFG->dirroot . '/mod/emarking/lib.php';
     require_once $CFG->dirroot . "/mod/emarking/locallib.php";
     require_once $CFG->dirroot . '/mod/emarking/print/locallib.php';
     emarking_generate_personalized_exams();
 }
require_once $CFG->libdir . '/clilib.php';
// cli only functions
require_once $CFG->dirroot . "/lib/pdflib.php";
require_once $CFG->dirroot . "/mod/assign/feedback/editpdf/fpdi/fpdi_bridge.php";
require_once $CFG->dirroot . "/mod/assign/feedback/editpdf/fpdi/fpdi.php";
require_once $CFG->dirroot . "/mod/emarking/lib/phpqrcode/phpqrcode.php";
require_once $CFG->dirroot . '/mod/emarking/lib.php';
require_once $CFG->dirroot . "/mod/emarking/locallib.php";
require_once $CFG->dirroot . '/mod/emarking/print/locallib.php';
// now get cli options
list($options, $unrecognized) = cli_get_params(array('help' => false, 'category' => 0), array('h' => 'help', 'c' => 'category'));
if ($unrecognized) {
    $unrecognized = implode("\n  ", $unrecognized);
    cli_error(get_string('cliunknowoption', 'admin', $unrecognized));
}
if ($options['help']) {
    $help = "Generates all PDFs pending for printing.\n\nOptions:\n-h, --help            Print out this help\n-c, --category        Print out this only exams from course in this category\n            \nExample:\n\$sudo -u www-data /usr/bin/php admin/cli/generatefilestoprint.php --category 2\n";
    // TODO: localize - to be translated later when everything is finished
    echo $help;
    die;
}
cli_heading('EMarking generate files to print');
// TODO: localize
$category = NULL;
if ($options['category'] && !($category = $DB->get_record('course_categories', array('id' => $options['category'])))) {
    cli_error('Invalid category id');
    die;
}
emarking_generate_personalized_exams($category);
exit(0);
// 0 means success