franGiPane - listes de discussion (scripts)

Scripts concernant MailingLists.

Travail préliminaire à revoir

classe liste

créer_liste(adresse, adresse_admin=listes@boum.org, notifier=oui, mot_de_passe_admin=blabla)

SI le domaine n'est pas géré par nous (au niveau de Postfix, DNS, etc. ; cf ajout_domaine) ALORS exit(erreur: domaine étranger)

SI l'adresse de la liste existe déjà (alias/boîte Postfix, liste) ALORS exit(erreur: cette adresse existe déjà)

SI il existe déjà une liste dont le nom est le même, y compris avec un autre nom de domaine ALORS exit(erreur: adresse non disponible)

SI notifier = oui ALORS
cd /usr/lib/mailman/bin puis (parce que sinon, ça marche pas forcément, le chemin absolu)
sudo newlist $adresse $adresse_admin $mot_de_passe_admin
SINON sudo newlist -q $adresse $adresse_admin $mot_de_passe_admin
FIN SI

cleaner après soi si ça déconne

importer_liste(adresse, repertoire_lists, repertoire_archives)

$real_name = ce qu'il y a à gauche du @
$domaine.tld = ce qu'il y a à droite du @

verifier que les repertoires sont bons

SI créer_liste(adresse, notifier=non) ne marche pas ALORS exit(erreur de créer_liste)

importer la config : cp -a $repertoire_lists/* /var/lib/mailman/lists/$real_name

importer les archives :
rm -rf /var/lib/mailman/archives/private/$real_name*
cp -a $repertoire_archives/private/$real_name* /var/lib/mailman/archives/private/

adapter la config à notre setup :

cd /var/lib/mailman
SI la liste n'est pas archivée publiquement ALORS
  rm public/$real_name
FIN SI
cd ..
./bin/withlist $real_name
>>> m.Lock()
>>> m.web_page_url='https://boum.org/mailman/'
>>> m.Save()
>>> m.Unlock()
./bin/arch $real_name

Prévenir les users

supprimer_liste (adresse)

/var/lib/mailman/bin/rmlist -a LISTE