Files
cis/module/composition.module.sh
T
2026-06-10 22:52:34 +02:00

58 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
source /cis/core/base.module.sh
function composition.printAll() {
local _COMPOSITIONS _CURRENTHOST_FILE
_COMPOSITIONS="${CIS[DOMAINDEFINITIONS]:?"Missing CIS_DOMAINDEFINITIONS"}compositions/"
_CURRENTHOST_FILE="current-host"
readonly _COMPOSITIONS _CURRENTHOST_FILE
local _composition
for _composition in "${_COMPOSITIONS}"*/; do
if [ -f "${_composition}${_CURRENTHOST_FILE}" ]; then
_composition="${_composition%/}"
_composition="${_composition##*/}"
echo "${_composition}"
fi
done
}
function composition.printAllRunningOnThisHost() {
local _COMPOSITIONS _CURRENTHOST_FILE
_COMPOSITIONS="${CIS[DOMAINDEFINITIONS]:?"Missing CIS_DOMAINDEFINITIONS"}compositions/"
_CURRENTHOST_FILE="current-host"
readonly _COMPOSITIONS _CURRENTHOST_FILE
local _composition
for _composition in "${_COMPOSITIONS}"*/; do
if grep -q -F "${CIS[HOST]}" "${_composition}${_CURRENTHOST_FILE}"; then
_composition="${_composition%/}"
_composition="${_composition##*/}"
echo "${_composition}"
fi
done
}
function composition.printAllWhereThisHostSyncs() {
local _COMPOSITIONS _CURRENTHOST_FILE _SYNCHOST_FILE
_COMPOSITIONS="${CIS[DOMAINDEFINITIONS]:?"Missing CIS_DOMAINDEFINITIONS"}compositions/"
_CURRENTHOST_FILE="current-host"
_SYNCHOST_FILE="composition-sync-hosts"
readonly _COMPOSITIONS _CURRENTHOST_FILE _SYNCHOST_FILE
local _composition
for _composition in "${_COMPOSITIONS}"*/; do
if grep -q -F "${CIS[HOST]}" "${_composition}${_CURRENTHOST_FILE}"; then
# This host either runs the composition or syncs it.
continue
fi
if grep -q -F "${CIS[HOST]}" "${_composition}${_SYNCHOST_FILE}"; then
_composition="${_composition%/}"
_composition="${_composition##*/}"
echo "${_composition}"
fi
done
}