Crans
  • Commentaires
  • Page immuable
  • Menu
    • Affichage
    • Carte locale du site
    • Pièces jointes
    • Informations
    • Code source
    • Utilisateur
    • Ajouter un lien
    • S'abonner
  • Connexion
    • Connexion
    • Paramètres

Navigation

  • Modifications récentes
  • Recherche avancée
  • Aide
CransWiki:
  • attachment:mailWarn_dirtyEtc.py de CransNostalgie/ConcurrentVersionsSystem

Pièce jointe « mailWarn_dirtyEtc.py »

Téléchargement

   1 #! /usr/bin/env python
   2 # -*- coding: iso-8859-1 -*-
   3 
   4 # 08/06/2004 Fred
   5 
   6 import smtplib, os, time, sys, string
   7 
   8 mailhost = 'zamok.crans.org'
   9 mailport = 25
  10 
  11 # Où regarder (reps séparés par des espaces) ?
  12 checks = '/etc'
  13 
  14 params = { 'from_name'  : 'Nectaris CVS' ,
  15           'from_addr'  : 'root@crans.org' ,
  16 	  'to' : 'fred@crans.org' ,
  17 	  'subject' : 'CVS Status'}
  18 	  
  19 # Récupération de l'état des fichiers
  20 etat = os.popen('/usr/bin/cvs -q -d /var/cvsroot status %s' % checks )
  21 
  22 
  23 # Valeurs initiales
  24 resume = ''
  25 details = ''
  26 line = etat.readline()
  27 
  28 # Tri
  29 while line :
  30     # Il nous faut le début de la description d'un fichier
  31     if line != '===================================================================\n' :
  32 	line = etat.readline()
  33 	continue
  34     
  35     line = string.strip(etat.readline())
  36     # On doit alors avoir une ligne du type : 
  37     #	'File: truc          \tStatus: status'
  38     l = string.split(line)
  39     if l[0] != 'File:' and l[2] != 'Status:' :
  40 	continue
  41     
  42     if l[3] != 'Up-to-date' : 
  43 	resume += line
  44 	resume +='\n'
  45 	
  46     while line and line != '===================================================================\n':
  47 	if l[3] != 'Up-to-date' : details += line
  48 	line = etat.readline()
  49 	
  50     if l[3] != 'Up-to-date' : details += line
  51 
  52 if not resume :
  53     # Tout est à jour
  54     sys.exit(0)
  55 	
  56 # Préparation du mail
  57 params['date'] = time.strftime('%a, %d %b %Y %H:%M:%S +0000', time.gmtime(time.time()))
  58 
  59 mail = 'From: %(from_name)s <%(from_addr)s>\n\
  60 To: %(to)s\n\
  61 Subject: %(subject)s\n\
  62 X-CVSinfo: CRANS\n\
  63 Date: %(date)s\n\
  64 X-Mailer: Python CVS check (by Fred)\n\n\
  65 Liste des fichiers non synchros\n\
  66 ===============================\n' % params
  67 mail += resume
  68 mail += '\n\n'
  69 mail += 'Détails\n=======\n'
  70 mail += details
  71 
  72 # Envoi du mail
  73 conn = smtplib.SMTP()
  74 conn.connect(mailhost, mailport)
  75 conn.sendmail(params['from_addr'], params['to'], mail)
  76 conn.close()

Fichiers joints

Pour vous référer aux pièces jointes d'une page, utilisez attachment:filename, comme indiqué ci-dessous dans la liste de fichiers. N'utilisez pas l'URL du lien [get], car elle peut changer et donc être facilement cassée.
  • [télécharger | voir] (2018-05-26 10:58:18, 1.8 KB) [[attachment:mailWarn_dirtyEtc.py]]
  • [télécharger | voir] (2018-05-26 10:58:18, 1.0 KB) [[attachment:mailWarn_dirtyEtc.sh]]
  • [télécharger | voir] (2018-05-26 10:58:18, 14.9 KB) [[attachment:syncmail_linux]]
  • [télécharger | voir] (2018-05-26 10:58:18, 15.0 KB) [[attachment:syncmail_openBSD]]
 All files | Selected Files: delete move to page copy to page

Vous n'êtes pas autorisé à joindre un fichier à cette page.

  • Propulsé par MoinMoin
  • Mentions légales