Skip to content

Commit 46f5b91

Browse files
author
Marius Burkard
committed
Merge branch 'master' of git.ispconfig.org:webdev/ispconfig3
2 parents 42a34df + c6d0087 commit 46f5b91

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

server/addons.php

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<?php
2+
3+
/*
4+
Copyright (c) 2007-2016, Till Brehm, projektfarm Gmbh
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
*/
30+
31+
define('SCRIPT_PATH', dirname($_SERVER["SCRIPT_FILENAME"]));
32+
require SCRIPT_PATH."/lib/config.inc.php";
33+
require SCRIPT_PATH."/lib/app.inc.php";
34+
35+
set_time_limit(0);
36+
ini_set('error_reporting', E_ALL & ~E_NOTICE);
37+
38+
// make sure server_id is always an int
39+
$conf['server_id'] = intval($conf['server_id']);
40+
41+
// Load required base-classes
42+
$app->uses('ini_parser,file,services,getconf,system,cron,functions');
43+
$app->load('libdatetime,cronjob');
44+
45+
// Path settings
46+
$path = SCRIPT_PATH . '/lib/classes/cron.d';
47+
48+
//** Get commandline options
49+
$cmd_opt = getopt('', array('cronjob::'));
50+
51+
if(isset($cmd_opt['cronjob']) && is_file($path.'/'.$cmd_opt['cronjob'])) {
52+
// Cronjob that shell be run
53+
$cronjob_file = $cmd_opt['cronjob'];
54+
} else {
55+
die('Usage example: php cron_debug.php --cronjob=100-mailbox_stats.inc.php');
56+
}
57+
58+
// Load and run the cronjob
59+
$name = substr($cronjob_file, 0, strpos($cronjob_file, '.'));
60+
if(preg_match('/^\d+\-(.*)$/', $name, $match)) $name = $match[1]; // strip numerical prefix from file name
61+
include $path . '/' . $cronjob_file;
62+
$class_name = 'cronjob_' . $name;
63+
$cronjob = new $class_name();
64+
65+
$cronjob->onPrepare();
66+
$cronjob->onBeforeRun();
67+
$cronjob->onRunJob();
68+
$cronjob->onAfterRun();
69+
70+
die("finished.\n");
71+
72+
?>

0 commit comments

Comments
 (0)