#!/usr/bin/perl
# cpanel - autofixer2/get_sys_info                Copyright(c) 2011 cPanel, Inc.
#                                                           All rights Reserved.
# copyright@cpanel.net                                         http://cpanel.net
# This code is subject to the cPanel license. Unauthorized copying is prohibited

BEGIN { unshift @INC, '/usr/local/cpanel'; }

use Cpanel::Sys::OS ();
use Cpanel::OSSys   ();

my $ostype    = Cpanel::Sys::OS::getos();
my $osversion = Cpanel::Sys::OS::getreleaseversion();

my $arch = ( Cpanel::OSSys::uname() )[4];
if ( $arch =~ m/64/ ) {
    $arch = 64;
}
else {
    $arch = 32;
}

my $ver;
my $cpversion = 'undetermined';
if ( open( $ver, '<', '/usr/local/cpanel/version' ) ) {
    $cpversion = <$ver>;
    chomp($cpversion);
    close $ver;
}

my $log_file;
if ( -e '/var/log/cpanel-install-thread0.log' ) {
    $log_file = '/var/log/cpanel-install-thread0.log';
}
elsif ( -e '/var/log/stunnel-4.15-build.log' ) {
    $log_file = '/var/log/stunnel-4.15-build.log';
}
elsif ( -e '/var/cpanel/version/10.4.0' ) {
    $log_file = '/var/cpanel/version/10.4.0';
}

my $cpdate = 'undetermined';
if ($log_file) {
    if ( my $mtime = ( stat($log_file) )[9] ) {
        my ( $sec, $min, $hour, $mday, $mon, $year ) = localtime $mtime;
        $cpdate = ( $mon + 1 ) . '/' . $mday . '/' . ( $year + 1900 );
    }
}

my $freedisk = `/bin/df -m /usr/local/cpanel`;
if ( $freedisk =~ /1M-blocks/i ) {
    $freedisk =~ /(\S+)\s+[\d.]+\%/i;
    $freedisk = $1;
    $freedisk =~ s/[Mm]$//;
    $freedisk .= ' MB';
}
else {
    $freedisk = 'undetermined';
}

my $memfree = 'undetermined';
if ( -x '/usr/bin/free' ) {
    $memfree = `/usr/bin/free -m`;
}

print STDOUT <<EOSTR;
OS: $ostype
Version: $osversion
Arch: $arch 
cPanel version: $cpversion
cPanel birth day: $cpdate
Disk Free: $freedisk
Mem Free:
$memfree
EOSTR

mkdir '/var/cpanel',      0755 unless -d '/var/cpanel';
mkdir '/var/cpanel/logs', 0700 unless -d '/var/cpanel/logs';

if ( open( my $log, '>', '/var/cpanel/logs/11_30_system_info' ) ) {
    print $log <<EOFIL;
OS: $ostype
Version: $osversion
Arch: $arch 
cPanel version: $cpversion
cPanel birth day: $cpdate
Disk Free: $freedisk
Mem Free:
$memfree
EOFIL

    close $log;
}

exit;
