71 lines
2.0 KiB
Bash
71 lines
2.0 KiB
Bash
# ------------------------------------------------------------------------------
|
|
# Version determination function
|
|
# This file is part of the init.sh project
|
|
# Copyright (c) 2019-2022 Geoffray Levasseur <fatalerrors@geoffray-levasseur.org>
|
|
# ------------------------------------------------------------------------------
|
|
# This file is distributed under 3-clause BSD license.
|
|
# The complete license agreement can be obtained at:
|
|
# https://opensource.org/licenses/BSD-3-Clause
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Return on stdout $distro $version $codename
|
|
get_os_version()
|
|
{
|
|
if [[ ! -f /etc/os-release ]]; then
|
|
prnt E "get_os_version(): Your distribution doesn't have the needed os-release file."
|
|
die 8 --force
|
|
fi
|
|
|
|
# Create a sub-shell to avoid polluting the environnement
|
|
(
|
|
# Iniitalise version codename in case the var don't exists
|
|
VERSION_CODENAME="NULL"
|
|
|
|
# Import the file in the environment
|
|
source /etc/os-release
|
|
|
|
if [[ -z $ID ]]; then
|
|
prnt E "get_os_version(): Your /etc/os-release file mises some vital information."
|
|
die 8 --force
|
|
fi
|
|
|
|
if [[ -z $VERSION_ID ]]; then
|
|
local maj=$(uname -r | cut -d'.' -f1)
|
|
local min=$(uname -r | cut -d'.' -f2)
|
|
VERSION_ID="$maj.$min"
|
|
unset maj min
|
|
fi
|
|
|
|
# Return values on stdout
|
|
echo ${ID,,} ${VERSION_ID} $(echo ${VERSION_CODENAME,,} | awk '{print $1}')
|
|
|
|
|
|
)
|
|
}
|
|
export read_os_release
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Create system related variables
|
|
# ------------------------------------------------------------------------------
|
|
set_sys_vars()
|
|
{
|
|
if [[ $# -ne 4 ]]; then
|
|
prnt E "set_sys_vars(): Incorrect number of parameters ($@)."
|
|
die 7 --force
|
|
fi
|
|
|
|
export SYS_ARCH=$1
|
|
export SYS_DIST=$2
|
|
export SYS_VER=$3
|
|
if [[ $4 != "null" ]]; then
|
|
export SYS_CODE=$4
|
|
elif [[ -n $SYS_CODE ]]; then
|
|
unset SYS_CODE
|
|
fi
|
|
}
|
|
export -f get_os_version
|
|
|
|
# EOF
|