zzz_main_fct.sh: splitted in 3 files, chroot.sh, command_line.sh and loaders.sh
This commit is contained in:
104
lib/loaders.sh
Normal file
104
lib/loaders.sh
Normal file
@@ -0,0 +1,104 @@
|
||||
# ------------------------------------------------------------------------------
|
||||
# Loaders for conf and prepost functions
|
||||
# This file is part of the init.sh project
|
||||
# Copyright (c) 2019-2021 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
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Automatically load system specific configuration if file exist in the
|
||||
# following order:
|
||||
# 1) auto/arch.conf.sh
|
||||
# 2) auto/distro.conf.sh
|
||||
# 3) auto/distro-arch.conf.sh
|
||||
# 4) auto/distro-version.conf.sh
|
||||
# 5) auto/distro-codename.conf.sh (if sys_code defined)
|
||||
# 6) auto/distro-version-arch.conf.sh
|
||||
# 7) auto/distro-codename-arch.conf.sh (if sys_code defined)
|
||||
load_autoconf()
|
||||
{
|
||||
local prefix="$MYPATH/conf/auto"
|
||||
|
||||
if [[ -e $prefix/$SYS_ARCH.conf.sh ]]; then
|
||||
. $prefix/$SYS_ARCH.conf.sh
|
||||
fi
|
||||
if [[ -e $prefix/$SYS_DIST.conf.sh ]]; then
|
||||
. $prefix/$SYS_DIST.conf.sh
|
||||
fi
|
||||
if [[ -e $prefix/$SYS_DIST-$SYS_ARCH.conf.sh ]]; then
|
||||
. $prefix/$SYS_DIST-$SYS_ARCH.conf.sh
|
||||
fi
|
||||
if [[ -e $prefix/$SYS_DIST-$SYS_VER.conf.sh ]]; then
|
||||
. $prefix/$SYS_DIST-$SYS_VER.conf.sh
|
||||
fi
|
||||
if [[ -n $SYS_CODE && -e $prefix/$SYS_DIST-$SYS_CODE.conf.sh ]]; then
|
||||
. $prefix/$SYS_DIST-$SYS_CODE.conf.sh
|
||||
fi
|
||||
if [[ -e $prefix/$SYS_DIST-$SYS_VER-$SYS_ARCH.conf.sh ]]; then
|
||||
. $prefix/$SYS_DIST-$SYS_VER-$SYS_ARCH.conf.sh
|
||||
fi
|
||||
if [[ -n $SYS_CODE && -e $prefix/$SYS_DIST-$SYS_CODE-$SYS_ARCH.conf.sh ]]; then
|
||||
. $prefix/$SYS_DIST-$SYS_CODE-$SYS_ARCH.conf.sh
|
||||
fi
|
||||
|
||||
unset prefix
|
||||
}
|
||||
export -f load_autoconf
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Load configuration with the following priorities:
|
||||
# 1) Those given on command line, if any
|
||||
# 2) <workingdir>/conf/<hostname>.conf (Hostname based and specific)
|
||||
# 3) <workingdir>/conf/init.conf.sh (Generic default)
|
||||
load_configuration()
|
||||
{
|
||||
if [[ -n $CONFFILES ]]; then
|
||||
local f=
|
||||
for f in $CONFFILES; do
|
||||
prnt I "Loading $f manually specified."
|
||||
if [[ -s $f ]]; then
|
||||
. $f
|
||||
else
|
||||
prnt E "The $f file doesn't exists or is empty."
|
||||
die 6 --force
|
||||
fi
|
||||
done
|
||||
unset f
|
||||
else
|
||||
prnt I "Loading configuration..."
|
||||
if [[ -e $MYPATH/conf/$HOSTNAME.conf.sh ]]; then
|
||||
prnt I "A specific configuration will be used."
|
||||
. $MYPATH/conf/$HOSTNAME.conf.sh
|
||||
else
|
||||
if [[ -e $MYPATH/conf/init.conf.sh ]]; then
|
||||
prnt I "A generic configuration will be used."
|
||||
. $MYPATH/conf/init.conf.sh
|
||||
else
|
||||
prnt E "No configuration found, impossible to continue."
|
||||
die 6 --force
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
export -f load_configuration
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Load pre and post actions for package manager
|
||||
load_prepost_actions()
|
||||
{
|
||||
local prepost=
|
||||
for prepost in $MYPATH/prepost.d/*.sh; do
|
||||
prnt I "Loading prepost actions in $prepost ..."
|
||||
. $prepost
|
||||
done
|
||||
unset prepost
|
||||
}
|
||||
export -f load_prepost_actions
|
||||
|
||||
# EOF
|
||||
Reference in New Issue
Block a user