Files
init.sh/lib/version.sh
2023-08-02 11:36:01 +02:00

72 lines
2.1 KiB
Bash

#!/bin/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 (awk used to retreave primary codename when using testing or unstable)
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