Commit 830390bc authored by Lucas Russo's avatar Lucas Russo

scripts/*: add script to detect distribution

parent 2b94d7a0
#!/usr/bin/env bash
# Detects which OS and if it is Linux then it will detect which Linux Distribution.
OS=`uname -s`
REV=`uname -r`
MACH=`uname -m`
GetVersionFromFile()
{
VERSION=`cat $1 | tr "\n" ' ' | sed s/.*VERSION.*=\ // `
}
function usage() {
echo "Usage: $0 [-d <Print distribution name only>] [-r <Print distribution revision only>]"
}
DIST_ONLY=0
REV_ONLY=0
# Get command line options
while getopts ":dr" opt; do
case $opt in
d)
DIST_ONLY=1
;;
r)
REV_ONLY=1
;;
\?)
echo "Invalid option: -$OPTARG" >&2
usage
exit 1
;;
:)
echo "Option -$OPTARG requires an argument." >&2
usage
exit 1
;;
esac
done
# Check some OSes and Distro
if [ "${OS}" = "SunOS" ] ; then
OS=Solaris
ARCH=`uname -p`
# OSSTR="${OS} ${REV}(${ARCH} `uname -v`)"
elif [ "${OS}" = "AIX" ] ; then
OSSTR="${OS} `oslevel` (`oslevel -r`)"
elif [ "${OS}" = "Linux" ] ; then
KERNEL=`uname -r`
if [ -f /etc/redhat-release ] ; then
DIST='RedHat'
PSUEDONAME=`cat /etc/redhat-release | sed s/.*\(// | sed s/\)//`
REV=`cat /etc/redhat-release | sed s/.*release\ // | sed s/\ .*//`
elif [ -f /etc/fedora-release ] ; then
DIST='Fedora'
PSUEDONAME=`cat /etc/fedora-release | sed s/.*\(// | sed s/\)//`
REV=`cat /etc/fedora-release | sed s/.*release\ // | sed s/\ .*//`
elif [ -f /etc/SUSE-release ] ; then
DIST=`cat /etc/SUSE-release | tr "\n" ' '| sed s/VERSION.*//`
REV=`cat /etc/SUSE-release | tr "\n" ' ' | sed s/.*=\ //`
elif [ -f /etc/lsb-release ] ; then
DIST='Ubuntu'
PSUEDONAME=`cat /etc/lsb-release | grep "DISTRIB_CODENAME=.*" | sed 's/DISTRIB_CODENAME=\(.*\)/\1/'`
REV=`cat /etc/lsb-release | grep "DISTRIB_RELEASE=.*" | sed 's/DISTRIB_RELEASE=\(.*\)/\1/'`
elif [ -f /etc/debian_version ] ; then
DIST="Debian `cat /etc/debian_version`"
REV=""
fi
OSSTR="${OS} ${DIST} ${REV}(${PSUEDONAME} ${KERNEL} ${MACH})"
fi
OUT=
if [ "${DIST_ONLY}" = 0 ] && [ "${REV_ONLY}" = 0 ] ; then
OUT+=${OSSTR}
else
if [ "${DIST_ONLY}" = 1 ] ; then
OUT+="${DIST}"
fi
if [ "${REV_ONLY}" = 1 ] ; then
OUT+=" ${REV}"
fi
fi
echo ${OUT}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment