From 2681331dbcb1e75b09746eee3d203371fdebafde Mon Sep 17 00:00:00 2001 From: m8in Date: Wed, 10 Jun 2026 22:52:34 +0200 Subject: [PATCH] new module composition --- module/composition.module.sh | 57 ++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 module/composition.module.sh diff --git a/module/composition.module.sh b/module/composition.module.sh new file mode 100755 index 0000000..d17a48e --- /dev/null +++ b/module/composition.module.sh @@ -0,0 +1,57 @@ +#!/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 +}