MegaGlest/mk/linux/mg_shared.sh

95 lines
2.4 KiB
Bash

#!/bin/bash
#
# Functions shared by several scripts
#
function detect_system {
# Determine distro title, release, codename
#
# Input:
# -/-
#
# Output:
# No direct output, but the following variables are set:
# lsb: whether (1) or not (0) system information was retrieved from 'lsb_release'
# distribution: detected Linux distribution (string)
# release: detected distribution release / version (string)
# codename: codename of the detected Linux distribution (string)
# architecture: detected machine architecture (string)
if [[ `which lsb_release` = '' ]]
then
lsb=0
if [ -e /etc/debian_version ]
then
distribution='Debian'
release='unknown release version'
codename=`cat /etc/debian_version`
elif [ -e /etc/SuSE-release ]
then
distribution='SuSE'
release='unknown release version'
codename=`cat /etc/SuSE-release`
elif [ -e /etc/redhat-release ]
then
if [ -e /etc/fedora-release ]
then
distribution='Fedora'
release='unknown release version'
codename=`cat /etc/fedora-release`
else
distribution='Redhat'
release='unknown release version'
codename=`cat /etc/redhat-release`
fi
elif [ -e /etc/fedora-release ]
then
distribution='Fedora'
release='unknown release version'
codename=`cat /etc/fedora-release`
elif [ -e /etc/mandrake-release ]
then
distribution='Mandrake'
release='unknown release version'
codename=`cat /etc/mandrake-release`
fi
else
lsb=1
distribution=`lsb_release -i | awk -F':' '{ gsub(/^[ \t]*/,"",$2); print $2 }'`
release=`lsb_release -r | awk -F':' '{ gsub(/^[ \t]*/,"",$2); print $2 }'`
codename=`lsb_release -c | awk -F':' '{ gsub(/^[ \t]*/,"",$2); print $2 }'`
# Some distribution examples:
#
# OpenSuSE 11.4
# LSB Version: n/a
# Distributor ID: SUSE LINUX
# Description: openSUSE 11.4 (x86_64)
# Release: 11.4
# Codename: Celadon
#
# OpenSuSE 12.1
# LSB support: 1
# Distribution: SUSE LINUX
# Release: 12.1
# Codename: Asparagus
#
# Arch
# LSB Version: n/a
# Distributor ID: archlinux
# Description: Arch Linux
# Release: rolling
# Codename: n/a
#
# Ubuntu 12.04
# Distributor ID: Ubuntu
# Description: Ubuntu 12.04 LTS
# Release: 12.04
# Codename: precise
fi
architecture=`uname -m`
}