blob: 217c6643197386e75a6050e7aff7765103ca76bd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#!/usr/bin/env php
<?php
/**
* cronjobs - Helper script for the cronjobs
*
* @author Jan-Hendrik Willms <tleilax+studip@gmail.com>
* @license http://www.gnu.org/licenses/gpl-2.0.html GPL version 2
* @category Stud.IP
* @since 3.1
* @todo Parameter handling!
*/
require_once 'studip_cli_env.inc.php';
$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];
$opts = getopt('hl', ['help', 'list']);
if (isset($opts['l']) || isset($opts['list'])) {
$tasks = CronjobTask::findBySql('1');
foreach ($tasks as $task) {
$description = call_user_func([$task->class, 'getDescription']);
fwrite(STDOUT, sprintf('%s %s' . PHP_EOL, $task->id, $description));
}
exit(0);
}
if ($argc < 2 || isset($opts['h']) || isset($opts['help'])) {
fwrite(STDOUT,'Usage: ' . basename(__FILE__) . ' [--help] [--list] <task_id> [last_result]' . PHP_EOL);
exit(0);
}
$id = $_SERVER['argv'][1];
$last_result = $argc > 2 ? $_SERVER['argv'][2] : null;
$task = CronjobTask::find($id);
if (!$task) {
fwrite(STDOUT, 'Unknown task id' . PHP_EOL);
exit(0);
}
if (!file_exists($GLOBALS['STUDIP_BASE_PATH'] . '/' . $task->filename)) {
fwrite(STDOUT, 'Invalid task, unknown filename "' . $task->filename . '"' . PHP_EOL);
exit(0);
}
require_once $task->filename;
if (!class_exists($task->class)) {
fwrite(STDOUT, 'Invalid task, unknown class "' . $task->class . '"' . PHP_EOL);
exit(0);
}
$task->engage($last_result);
|