diff --git a/gestion/secours.py b/gestion/secours.py index a8a03acb..de966c4d 100755 --- a/gestion/secours.py +++ b/gestion/secours.py @@ -1,15 +1,27 @@ #! /usr/bin/env python # -*- coding: iso-8859-15 -*- -# Fichiers à modifier et chaine indiquant un commentaire dans ceux-ci -fichiers = { '/etc/bind/named.conf.options' : '//' , - '/etc/postfix/main.cf' : '#' } - import sys, sre +from socket import gethostname +hostname = gethostname().split(".")[0] + +# Fichiers à modifier et chaine indiquant un commentaire dans ceux-ci +if hostname == 'zamok' : + fichiers = { '/etc/bind/named.conf.options' : '//' , + '/etc/postfix/main.cf' : '#' } +elif hostname == 'sila' : + fichiers = { '/etc/bind/named.conf.options' : '//' , + '/etc/squid/squid.conf' : '#' } +else : + print "Script sans effet sur cette machine." + sys.exit(1) def edit(file,comment,secours) : """ Edite le fichier fourni en commentant (mode normal) - ou décommentant (mode secours) les lignes se terminant avec #POUR SECOURS """ + ou décommentant (mode secours) les lignes signalées : + * celles se terminant avec #POUR SECOURS + * ou les n lignes (<10)suivant une qui commande par #POUR SECOURS-n + (si le -n est omis une seule ligne est affectée)""" signal = '#POUR SECOURS' l = len(signal) @@ -17,11 +29,11 @@ def edit(file,comment,secours) : fd = open(file) line = fd.readline() new = '' - nextone = False # La prochaine ligne est-elle a triter ? non + reste = 0 # Nombre de lignes restant à traiter while line : l = line.rstrip() - mo = sre.match('^(.*)'+signal+'$',l) - if (mo and len(mo.group(1)) > 1) or nextone: + mo = sre.match('^(.*)'+signal+'(|-.)$',l) + if (mo and len(mo.group(1)) > 1) or reste: # Ligne pour secours if not sre.match('^' + comment,l) and not secours: # On est actuellement configuré en secours @@ -34,12 +46,13 @@ def edit(file,comment,secours) : else : # Rien à faire, on est bien configuré new += line - if nextone: - nextone = False + if reste : + reste -= 1 elif mo and len(mo.group(1)) == 0: - # On a une ligne avec secours uniquement, c'est la prochaine ligne - # qui fait foi - nextone = True + # On a une ligne avec secours uniquement, c'est les n + # prochaines lignes qui font foi + try : reste = int(mo.group(2)[1:]) + except : reste = 1 new += line else : # Ligne normale