#!/bin/sh

distro_name='unknown'
distro_version='0.0.0'
rhel_release='/etc/redhat-release'
ora_release="/etc/oracle-release"

set_rhversion()
{
    distro_version=$(cat "$1" | sed -n 's/^.*release \([^[:space:]]\+\).*/\1/p')
}

get_distro()
{
    if [ -f '/etc/os-release' ]; then
        while read line; do
            key=$(echo "$line" | cut -d= -f1)
            val=$(echo "$line" | cut -d= -f2 | sed -e s/\"//g)
            case x"$key" in
                x"ID")
                    distro_name="$val"
                    ;;
                x"VERSION_ID")
                    distro_version="$val"                    
                    ;;
                *)                    
            esac
        done <<EOF 
$(cat /etc/os-release)
EOF
    elif [ -f "$rhel_release" ]; then
        local dn="$(cat "$rhel_release" | tr [:lower:] [:upper:])"
        case "$dn" in
            "CENTOS"*)
                distro_name=centos
                set_rhversion "$rhel_release"
                ;;
            "RED HAT"*)
                distro_name=rhel
                set_rhversion "$rhel_release"
                ;;
            *)
        esac

    elif [ -f "$ora_release" ]; then
        set_rhversion "$ora_release"
    fi
}

get_distro

kernel_version=$(uname -r | sed -n -e 's/^\([0-9.]\+\).*/\1/p')

cat <<EOF
{
  "distroVersion" : "$distro_version",
  "distroName" : "$distro_name",
  "kernelVersion" : "$kernel_version"
}
EOF