Votre espace a été migré vers le nouveau wiki le 21/08/2023 : https://wiki.univ-lorraine.fr/wiki/perso/view/zimmerm15
Les modifications apportées ici depuis cette date ne seront pas reportées. Le wikidocs disparaitra définitivement le 31/01/2024.

Introduction

Le but est de générer le fichier des alias sympa à partir de l'ensemble des fichiers de configuration de sympa plutôt qu'avec la commande /home/sympa/bin/sympa.pl --make_alias_file qui ne fonctionne plus lorsque sympa repose, pour ses alias, sur un annuaire ldap par exemple.

Une solution

Voici un script qui permet de générer ce fichier d'alias en ne se basant que sur les listes pour lesquelles le statut est « open ». On supposera qu'il n'y a qu'un seul robot : robot.domaine.tld.

make_sympa_alias_file.sh
#!/bin/bash

# script de re-génération d'un fichier d'alias sympa lorsque sympa
# n'en est plus capable : quand sympa repose sur un ldap par exemple.

cd /home/sympa/list_data/<robot.domaine.tld>/
find ./ -type f -name 'config' -print0 \
 | xargs -0 \grep -P '^\s*status' \
 | sed -re 's/^\.\/([^/]+)\/config:status[[:space:]]+(.*)$/\1|\2/' \
 | perl -e '$hostname = `hostname`; chomp($hostname); while(<>) { chomp; ($liste, $status) = split(/\|/); if ($status eq "open") { print "#------------------------------ ${liste}\n${liste}: ${liste}\@${hostname}\n${liste}-request: ${liste}-request\@${hostname}\n${liste}-editor: ${liste}-editor\@${hostname}\n#${liste}-subscribe: #${liste}-subscribe\@${hostname}\n${liste}-unsubscribe: ${liste}-unsubscribe\@${hostname}\n${liste}-owner: ${liste}-owner\@${hostname}\n"; } }'