Gestion des fichiers pour sila aussi.
darcs-hash:20041017142421-41617-e4954e5db4233194c6b8a0ce3dda7aab177eaf19.gz
This commit is contained in:
parent
c6b6075c93
commit
ca93793889
1 changed files with 26 additions and 13 deletions
|
@ -1,15 +1,27 @@
|
||||||
#! /usr/bin/env python
|
#! /usr/bin/env python
|
||||||
# -*- coding: iso-8859-15 -*-
|
# -*- coding: iso-8859-15 -*-
|
||||||
|
|
||||||
|
import sys, sre
|
||||||
|
from socket import gethostname
|
||||||
|
hostname = gethostname().split(".")[0]
|
||||||
|
|
||||||
# Fichiers à modifier et chaine indiquant un commentaire dans ceux-ci
|
# Fichiers à modifier et chaine indiquant un commentaire dans ceux-ci
|
||||||
|
if hostname == 'zamok' :
|
||||||
fichiers = { '/etc/bind/named.conf.options' : '//' ,
|
fichiers = { '/etc/bind/named.conf.options' : '//' ,
|
||||||
'/etc/postfix/main.cf' : '#' }
|
'/etc/postfix/main.cf' : '#' }
|
||||||
|
elif hostname == 'sila' :
|
||||||
import sys, sre
|
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) :
|
def edit(file,comment,secours) :
|
||||||
""" Edite le fichier fourni en commentant (mode normal)
|
""" 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'
|
signal = '#POUR SECOURS'
|
||||||
l = len(signal)
|
l = len(signal)
|
||||||
|
@ -17,11 +29,11 @@ def edit(file,comment,secours) :
|
||||||
fd = open(file)
|
fd = open(file)
|
||||||
line = fd.readline()
|
line = fd.readline()
|
||||||
new = ''
|
new = ''
|
||||||
nextone = False # La prochaine ligne est-elle a triter ? non
|
reste = 0 # Nombre de lignes restant à traiter
|
||||||
while line :
|
while line :
|
||||||
l = line.rstrip()
|
l = line.rstrip()
|
||||||
mo = sre.match('^(.*)'+signal+'$',l)
|
mo = sre.match('^(.*)'+signal+'(|-.)$',l)
|
||||||
if (mo and len(mo.group(1)) > 1) or nextone:
|
if (mo and len(mo.group(1)) > 1) or reste:
|
||||||
# Ligne pour secours
|
# Ligne pour secours
|
||||||
if not sre.match('^' + comment,l) and not secours:
|
if not sre.match('^' + comment,l) and not secours:
|
||||||
# On est actuellement configuré en secours
|
# On est actuellement configuré en secours
|
||||||
|
@ -34,12 +46,13 @@ def edit(file,comment,secours) :
|
||||||
else :
|
else :
|
||||||
# Rien à faire, on est bien configuré
|
# Rien à faire, on est bien configuré
|
||||||
new += line
|
new += line
|
||||||
if nextone:
|
if reste :
|
||||||
nextone = False
|
reste -= 1
|
||||||
elif mo and len(mo.group(1)) == 0:
|
elif mo and len(mo.group(1)) == 0:
|
||||||
# On a une ligne avec secours uniquement, c'est la prochaine ligne
|
# On a une ligne avec secours uniquement, c'est les n
|
||||||
# qui fait foi
|
# prochaines lignes qui font foi
|
||||||
nextone = True
|
try : reste = int(mo.group(2)[1:])
|
||||||
|
except : reste = 1
|
||||||
new += line
|
new += line
|
||||||
else :
|
else :
|
||||||
# Ligne normale
|
# Ligne normale
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue