You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
#!/usr/bin/env miaou-recipe
|
|
|
|
# CONSTANTS
|
|
|
|
GLOBAL_CONF=/etc/sympa/sympa/sympa.conf
|
|
LIST_DATA_DIR=/var/lib/sympa/list_data
|
|
FOUND=false
|
|
|
|
# FUNCTIONS
|
|
|
|
function fix_external_origin {
|
|
if ! grep -q "^allowed_external_origin.*\*$" $GLOBAL_CONF; then
|
|
/opt/miaou-bash/tools/append_or_replace '^allowed_external_origin.*$' 'allowed_external_origin *' $GLOBAL_CONF
|
|
|
|
echo 'allowed_external_origin now enabled'
|
|
FOUND=true
|
|
else
|
|
echo 'allowed_external_origin already enabled globally!'
|
|
fi
|
|
config_files=$(find $LIST_DATA_DIR -name "config" -type f)
|
|
for i in $config_files; do
|
|
if grep -q ^allowed_external_origin $i; then
|
|
FOUND=true
|
|
echo "found problematic configuration in $i"
|
|
remove_section_from_file $i allowed_external_origin
|
|
fi
|
|
done
|
|
}
|
|
|
|
function remove_section_from_file {
|
|
local file=$1
|
|
local section=$2
|
|
awk "/^$section/{found=1} !found{print} /^$/{found=0}" $file > $file.new
|
|
mv $file.new $file
|
|
chown sympa:sympa $file
|
|
}
|
|
|
|
function restart_services {
|
|
$FOUND && systemctl restart sympa wwsympa.socket || true
|
|
}
|
|
|
|
# MAIN
|
|
|
|
set -Eue
|
|
fix_external_origin
|
|
restart_services
|