#!/usr/bin/env perl

use strict;

my $info = {};

sub set_rhversion {
    if (m/.*?release ((\d|[.])+)/m) {
	$info->{'distroVersion'} = $1;
    }
}
sub get_distro {
    
    $info->{'distroName'} = 'unknown';
    $info->{'distroVersion'} = '0.0.0';
    
    if (open OSR ,'</etc/os-release') {
        while (<OSR>) {
            chomp;
            my ($key, $value) = split '=';            
            if ($key eq 'ID') {
                ($info->{'distroName'} = $value) =~ s/"//g;
            } elsif ($key eq 'VERSION_ID') {
                ($info->{'distroVersion'} = $value) =~ s/"//g;
            }
        }
    } elsif (open RHR ,'</etc/redhat-release') {
        chomp($_ = <RHR>);
        if (/^centos/i) {
            $info->{'distroName'} = 'centos';
	    &set_rhversion;
        }
        elsif (/^Red Hat/) {
            $info->{'distroName'} = 'rhel';
	    &set_rhversion;
        }
    } elsif (open ORA ,'</etc/oracle-release') {
        chomp($_ = <ORA>);
        $info->{'distroName'} = 'oracle';
        &set_rhversion;
    }
}

($info->{'kernelVersion'} = `uname -r`) =~ s/-.*//s;

&get_distro;

print << "EOM"
{
    "distroVersion" : "$info->{'distroVersion'}",
    "distroName" : "$info->{'distroName'}",
    "kernelVersion" : "$info->{'kernelVersion'}"
}

EOM
