#!/usr/bin/perl -s
use strict;
use CGI;
use RECOG;
use RECOG::RecogCommon;
require 'MBGD_common.pl';

#####################################################################
#
sub print_header {
    print '#', join("\t", 'Subsystem', 'Key', 'Value'), "\n";
}

#####################################################################
#
sub print_mysql_info {
    my($title) = 'MySQL';

    #
    my(@info_keys);
    my(%info_val_of);
    my($cmd) = "$main::CMD_mysqladmin version";
    my(@lines) = `$cmd`;
    my($found_version) = 0;
    foreach my$line (@lines) {
        $found_version = 1 if ($line =~ /^server version/i);
        next if (!$found_version);
        last if ($line =~ /^\s*$/);

        $line =~ s#[\r\n]*$##;
        my($key, $val) = split(/\t+/, $line);
        push(@info_keys, $key);
        $info_val_of{"$key"} = $val;
    }

    #
    my($n_cols) = scalar(@info_keys);
    foreach my$key (@info_keys) {
        my($val) = $info_val_of{"$key"};

        print join("\t", $title, $key, $val), "\n";
    }
}

#####################################################################
#
sub print_domclust_info {
    my($title) = 'DomClust';

    #
    my(@info_keys);
    my(%info_val_of);
    my($cmd) = "$main::PROG_DOMCLUST -h 2>&1";
    my(@lines) = `$cmd`;
    foreach my$line (@lines) {

        $line =~ s#[\r\n]*$##;

        if ($line =~ /^DomClust\s+(ver\.)(.+)/i) {
            my($key, $val) = ($1, $2);
            push(@info_keys, $key);
            $info_val_of{"$key"} = $val;
        }
    }

    #
    my($n_cols) = scalar(@info_keys);
    foreach my$key (@info_keys) {
        my($val) = $info_val_of{"$key"};

        print join("\t", $title, $key, $val), "\n";
    }
}

#####################################################################
#
sub print_recog_info {
    my($title) = 'RECOG';

    #
    my($ref) = RECOG::RecogCommon::read_recog_conf();
    foreach my$key (sort keys(%{$ref})) {
        my($val) = $ref->{"$key"};

        print join("\t", $title, $key, $val), "\n";
    }
}

#####################################################################
#
sub print_sys_info {

    #
    print "Content-type: text/plain\n";
    print "\n";

    #
    print_header();

    #
    print_recog_info();

    #
    print_domclust_info();

    #
    print_mysql_info();

}

#####################################################################
if ($0 eq __FILE__) {
    print_sys_info();
}
