summaryrefslogtreecommitdiff
path: root/modules/cvs.module
blob: 82342c255a2a8ed08dda32203fc10a0fdc34e8f7 (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
55
56
57
58
59
60
61
<?php
// $Id$

function cvs_perm() {
  return array("access cvs messages");
}

function cvs_link($type) {
  if ($type == "page" && user_access("access cvs messages")) {
    $links[] = "<a href=\"module.php?mod=cvs\">" . t("cvs messages") . "</a>";
  }

  return $links ? $links : array();
}

function cvs_cron() {
  if (time() - variable_get("cvs_cron_last", 0) > variable_get("cvs_cron_time", time())) {
    variable_set("cvs_cron_last", time());

    $result = db_query("SELECT * FROM cvs WHERE status = '0' ORDER BY timestamp DESC LIMIT 50");
    while ($cvs = db_fetch_object($result)) {
      $body .= "File: $cvs->files\nDate: ". format_date($cvs->timestamp) ."\nUser: $cvs->user\n\n$cvs->message\n----------------------------------------------------------------------\n";
    }
    $result = db_query("UPDATE cvs SET status = '1'");

    if ($body) mail(variable_get(cvs_mail, "root@localhost"), "cvs log messages", $body, "From: no-reply");
  }
}

function cvs_conf_options() {
  $period = array(43200 => format_interval(43200), 86400 => format_interval(86400), 172800 => format_interval(172800), 259200 => format_interval(259200), 604800 => format_interval(604800), 1209600 => format_interval(1209600));
  $output .= form_textfield("Digest recepients", "cvs_mail", variable_get("cvs_mail", "root@localhost"), 30, 55, "The e-mail address to mail the CVS log messages to.  Multiple recipients can be specified by putting a comma between each address.");
  $output .= form_select("Digest interval", "cvs_cron_time" , variable_get("cvs_cron_time", 86400), $period, "The time interval at which batched CVS digests are dispatched.  Requires crontab.");
  return $output;
}

function cvs_page() {
  global $theme;

  if (user_access("access cvs messages")) {
    $result = db_query("SELECT * FROM cvs ORDER BY timestamp DESC LIMIT 50");

    while ($cvs = db_fetch_object($result)) {
      $output .= "<b>File:</b> $cvs->files<br />";
      $output .= "<b>Date:</b> ". format_date($cvs->timestamp) ."<br />";
      $output .= "<b>User:</b> $cvs->user<br />";
      $output .= "\n". nl2br(htmlentities($cvs->message)) ."<hr />";
    }

    $theme->header();
    $theme->box("CVS commit messages", "<div style=\"font-family: monospace;\">$output</div>");
    $theme->footer();
  }
  else {
    $theme->header();
    $theme->box(t("Access denied"), message_access());
    $theme->footer();
  }
}

?>