hgbook
annotate it/examples/ch09-check_whitespace.py.lst.it @ 1114:527b86d55d4a
inotify: update installation information
inotify is shipped in Mercurial since 1.0, which greatly simplifies the installation process
inotify is shipped in Mercurial since 1.0, which greatly simplifies the installation process
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Sun Dec 13 16:35:56 2009 +0900 (2009-12-13) |
parents | 713f0f69029a 7252e7b7f07d |
children |
rev | line source |
---|---|
Giulio@797 | 1 <!-- BEGIN ch09/check_whitespace.py.lst --> |
Giulio@797 | 2 <programlisting>#!/usr/bin/env python |
Giulio@797 | 3 # |
Giulio@797 | 4 # salvate il file come .hg/controllo_spazio_bianco.py e rendetelo eseguibile |
Giulio@797 | 5 |
Giulio@797 | 6 import re |
Giulio@797 | 7 |
Giulio@797 | 8 def spazio_bianco_in_coda(righe_di_diff): |
Giulio@797 | 9 # |
Giulio@797 | 10 numriga, intestazione = 0, False |
Giulio@797 | 11 |
Giulio@797 | 12 for riga in righe_di_diff: |
Giulio@797 | 13 if intestazione: |
Giulio@797 | 14 # ricorda il nome del file coinvolto in questo diff |
Giulio@797 | 15 m = re.match(r'(?:---|\+\+\+) ([^\t]+)', riga) |
Giulio@797 | 16 if m and m.group(1) != '/dev/null': |
Giulio@797 | 17 nomefile = m.group(1).split('/', 1)[-1] |
Giulio@797 | 18 if riga.startswith('+++ '): |
Giulio@797 | 19 intestazione = False |
Giulio@797 | 20 continue |
Giulio@797 | 21 if riga.startswith('diff '): |
Giulio@797 | 22 intestazione = True |
Giulio@797 | 23 continue |
Giulio@797 | 24 # intestazione - salva il numero di riga |
Giulio@797 | 25 m = re.match(r'@@ -\d+,\d+ \+(\d+),', riga) |
Giulio@797 | 26 if m: |
Giulio@797 | 27 numriga = int(m.group(1)) |
Giulio@797 | 28 continue |
Giulio@797 | 29 # corpo - cerca una riga aggiunta con spazio bianco in coda |
gpiancastelli@840 | 30 m = re.match(r'\+.*[ \t]$', riga) |
Giulio@797 | 31 if m: |
Giulio@797 | 32 yield nomefile, numriga |
Giulio@797 | 33 if riga and riga[0] in ' +': |
Giulio@797 | 34 numriga += 1 |
Giulio@797 | 35 |
Giulio@797 | 36 if __name__ == '__main__': |
Giulio@797 | 37 import os, sys |
Giulio@797 | 38 |
Giulio@797 | 39 aggiunte = 0 |
Giulio@797 | 40 for nomefile, numriga in spazio_bianco_in_coda(os.popen('hg export tip')): |
Giulio@797 | 41 print >> sys.stderr, ('%s, riga %d: aggiunto spazio bianco in coda' % |
Giulio@797 | 42 (nomefile, numriga)) |
Giulio@797 | 43 aggiunte += 1 |
Giulio@797 | 44 if aggiunte: |
Giulio@797 | 45 # salva il messaggio di commit in modo da non doverlo digitare di nuovo |
Giulio@797 | 46 os.system('hg tip --template "{desc}" > .hg/commit.save') |
Giulio@797 | 47 print >> sys.stderr, 'messaggio di commit salvato nel file .hg/commit.save' |
Giulio@797 | 48 sys.exit(1)</programlisting> |
Giulio@797 | 49 <!-- END ch09/check_whitespace.py.lst --> |