3 abstract class ForgeEvent extends Plugin {
4 function ForgeEvent () {
6 $this->name = "event" ;
7 $this->text = "event" ;
8 $this->hooks[] = 'group_approve';
9 $this->hooks[] = 'scm_admin_update';
10 $this->hooks[] = 'site_admin_option_hook';
13 abstract function trigger_job($name);
15 function group_approve($params) {
16 return $this->trigger_job('create_scm_repos');
19 function scm_admin_update($params) {
20 return $this->trigger_job('create_scm_repos');
23 function site_admin_option_hook($params) {
24 $action = getStringFromRequest('action');
25 echo '<li><a name="jobs"></a>'.util_make_link('/admin/?action=listjobs#jobs', _('Jobs'))."\n";
26 if ($action == 'listjobs') {
28 echo '<li>'.util_make_link('/admin/?action=runjobs&job=create_scm_repos#jobs', _('Create SCM Repositories')).'</li>'."\n";
29 echo '<li>'.util_make_link('/admin/?action=runjobs&job=scm_update#jobs', _('Upgrade Forge Software')).'</li>'."\n";
33 if ($action == 'runjobs') {
34 $job = getStringFromRequest('job');
35 $job = util_ensure_value_in_set($job, array('create_scm_repos', 'scm_update'));
36 $this->trigger_job($job);
38 echo '<li><a name="version"></a>'.util_make_link('/admin/?action=version#version', _('Version'))."\n";
39 if ($action == 'version') {
41 if (is_dir("/opt/acosforge/.svn")) {
42 system("cd /opt/acosforge; svn info --config-dir /tmp 2>&1");
44 if (is_dir("/opt/acosforge/.git")) {
45 system("cd /opt/acosforge; git svn info 2>&1");
53 class PgForgeEvent extends ForgeEvent {
54 function trigger_job($name) {
55 return db_query_params("NOTIFY $name", array());
59 register_plugin (new PgForgeEvent) ;
61 $pm = plugin_manager_get_object() ;