Skip to end of metadata
Go to start of metadata

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"; } }'