new: required Perl modules listed with their version in about page.
[koha.git] / about.pl
1 #!/usr/bin/perl
2 use HTML::Template;
3 use strict;
4 require Exporter;
5 use C4::Database;
6 use C4::Output;  # contains gettemplate
7 use C4::Interface::CGI::Output;
8 use C4::Auth;
9 use C4::Context;
10 use CGI;
11 use LWP::Simple;
12 use XML::Simple;
13
14 my $query = new CGI;
15 my ($template, $loggedinuser, $cookie)
16     = get_template_and_user({template_name => "about.tmpl",
17                              query => $query,
18                              type => "intranet",
19                              authnotrequired => 0,
20                              flagsrequired => {parameters => 1},
21                              debug => 1,
22                              });
23
24 my $kohaVersion = C4::Context->config("kohaversion");
25 my $osVersion = `uname -a`;
26 my $perlVersion = $];
27 my $mysqlVersion = `mysql -V`;
28 my $apacheVersion =  `httpd -v`;
29 $apacheVersion =  `httpd2 -v` unless $apacheVersion;
30 my $zebraVersion = `zebraidx -V`;
31
32 $template->param(
33                                         kohaVersion => $kohaVersion,
34                                         osVersion          => $osVersion,
35                                         perlVersion        => $perlVersion,
36                                         mysqlVersion       => $mysqlVersion,
37                                         apacheVersion      => $apacheVersion,
38                                         zebraVersion       => $zebraVersion,
39                 );
40
41 my @components = ();
42
43 foreach my $component (qw/MARC::File::XML   MARC::Charset   Class::Accessor
44                           LWP::Simple       XML::Simple     Net::Z3950
45                           Event             Net::LDAP       PDF::API2
46                           Mail::Sendmail    MARC::Record    Digest::MD5
47                           HTML::Template    DBD::mysql      Date::Manip
48                           DBI               Smart::Comments ZOOM
49                          /) {
50     my $version;
51     if (eval "require $component") {
52         $version = $component->VERSION;
53         if ($version eq '' ) {
54             $version = 'unknown';
55         }
56     }
57     else {
58         $version = 'module is missing';
59     }
60
61     push @components,
62         {
63         name    => $component,
64         version => $version,
65     };
66 }
67
68 $template->param(
69     components => \@components
70 );
71
72 output_html_with_http_headers $query, $cookie, $template->output;