mirror of
https://github.com/glest/glest-source.git
synced 2025-02-24 03:32:35 +01:00
89 lines
2.7 KiB
Bash
Executable File
89 lines
2.7 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Functions shared by several scripts
|
|
#
|
|
# Copyright (c) 2013-2016 MegaGlest Team under GNU GPL v3.0+
|
|
|
|
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
|
|
release='unknown release'
|
|
if [ -e "/etc/os-release" ]; then
|
|
distribution="$(cat "/etc/os-release" | grep '^ID=' | awk -F '=' '{print $2}' \
|
|
| awk '{print toupper(substr($0,1,1))substr($0,2)}')"
|
|
codename="$(cat "/etc/os-release" | grep '^PRETTY_NAME=' | awk -F '"' '{print $2}')"
|
|
# example output ^ on debian testing: "Debian GNU/Linux stretch/sid"
|
|
elif [ -e /etc/debian_version ]; then
|
|
distribution='Debian'
|
|
codename="$(cat /etc/debian_version)"
|
|
elif [ -e /etc/SuSE-release ]; then
|
|
distribution='SuSE'
|
|
codename="$(cat /etc/SuSE-release)"
|
|
elif [ -e /etc/redhat-release ]; then
|
|
if [ -e /etc/fedora-release ]; then
|
|
distribution='Fedora'
|
|
codename="$(cat /etc/fedora-release)"
|
|
else
|
|
distribution='Redhat'
|
|
codename="$(cat /etc/redhat-release)"
|
|
fi
|
|
elif [ -e /etc/fedora-release ]; then
|
|
distribution='Fedora'
|
|
codename="$(cat /etc/fedora-release)"
|
|
elif [ -e /etc/mandrake-release ]; then
|
|
distribution='Mandrake'
|
|
codename="$(cat /etc/mandrake-release)"
|
|
else
|
|
distribution='unknown distribution'
|
|
codename='unknown codename'
|
|
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)"
|
|
}
|