ports/security/ossec-hids-local-config/scripts/template-to-ossec.sh
Palle Girgensohn 329f3e8d8b security/ossec-hids-*: fix broken config scripts
- No binary changes
- Replaced all 'sed' invocations with 'sed -E' and adjusted regexes accordingly

PR:		256545
Submitted by:	Dominik Lisiak (maintainer)
2022-06-17 10:28:22 +02:00

47 lines
1.4 KiB
Bash

#!/bin/sh
if [ $# -lt 3 ]; then
echo "Too few arguments"
echo "Usage: `basename $0` <ossec_type> <ossec_prefix> <ossec_file>"
exit 1
fi
ossec_type="$1"
ossec_prefix="$2"
ossec_file="$3"
if [ ! -f "${ossec_file}" ]; then
echo "File \"${ossec_file}\" does not exist"
exit 1
fi
ossec_syscheck_bin_dirs="${ossec_prefix}/bin,${ossec_prefix}/active-response"
ossec_syscheck_etc_dirs="${ossec_prefix}/etc"
if [ "${ossec_type}" != "agent" ]; then
ossec_syscheck_bin_dirs="${ossec_syscheck_bin_dirs},${ossec_prefix}/agentless"
ossec_syscheck_etc_dirs="${ossec_syscheck_etc_dirs},${ossec_prefix}/rules"
fi
replace() {
if grep -q "<template_config>" "${ossec_file}"; then
sed -E \
-e 's|<template_config>|<ossec_config>|' \
-e 's|</template_config>|</ossec_config>|' \
-e "s|%%OSSEC_SYSCHECK_BIN_DIRS%%|${ossec_syscheck_bin_dirs}|" \
-e "s|%%OSSEC_SYSCHECK_ETC_DIRS%%|${ossec_syscheck_etc_dirs}|" \
"${ossec_file}"
else
sed -E \
-e 's|<template_config .*os="FreeBSD".*>|<ossec_config>|' \
-e 's|</template_config>|</ossec_config>|' \
-e "s|%%OSSEC_SYSCHECK_BIN_DIRS%%|${ossec_syscheck_bin_dirs}|" \
-e "s|%%OSSEC_SYSCHECK_ETC_DIRS%%|${ossec_syscheck_etc_dirs}|" \
"${ossec_file}"
fi
}
extract() {
sed -En '/^<ossec_config.*>$/,/^<\/ossec_config>$/p'
}
replace | extract