source: spip-zone/_dev_/salvatore2/reattribution/trad.sh @ 77251

Last change on this file since 77251 was 77251, checked in by esj@…, 6 years ago

Salvatore: script de réaffectation des commits munie de numéros d'étapes afin de pouvoir être repris après interruption (il est long).

  • Property svn:executable set to *
File size: 2.0 KB
Line 
1#!/bin/sh
2# Script retrouvant le traducteur de chaque commit fait au nom de Salvatore (ou autre).
3# La derniere passe repose sur un fichier trad-mails.txt donnant leur mail,
4# chacune de ses lignes devant etre de la forme: nom%mail
5
6PREFIX=/tmp/ana-svn-${PWD##*/}
7SIZE=$(svn info|grep Revi|awk '{print $2}')
8USURPATEUR=salvatore@rezo.net
9ETAPE=$1
10if [ -z "$ETAPE" ]
11then ETAPE=1
12fi
13
14if [ $ETAPE -eq 1 ]
15then
16echo $ETAPE. Recuperer $SIZE commit >&2
17svn log -v -l$SIZE > $PREFIX-1.txt
18ETAPE=$((ETAPE+1))
19fi
20
21if [ $ETAPE -eq 2 ]
22then
23echo $ETAPE. Ne prendre que les envois de $USURPATEUR >&2
24awk "{if ( /^r/ ) ok=(/^r[0-9]+ [|] $USURPATEUR/); if (ok) print;}" $PREFIX-1.txt > $PREFIX-2.txt
25ETAPE=$((ETAPE+1))
26fi
27
28if [ $ETAPE -eq 3 ]
29then
30echo $ETAPE. Mettre sur une seule ligne le numéro de commit et les fichiers  >&2
31awk -F'[/ ]*' '{if (!$0) ok= 0; else {if (!ok) {if  ($0 == "Changed paths:") {print p; p=old; ok=1;} else old=$1} else p= p " " $NF;}}' $PREFIX-2.txt  > $PREFIX-3.txt
32ETAPE=$((ETAPE+1))
33fi
34
35if [ $ETAPE -eq 4 ]
36then
37echo $ETAPE. Prendre les commit ayant le fichier XML et au moins un fichier php >&2
38awk '/xml.*php/{print substr($1,2)}' $PREFIX-3.txt  > $PREFIX-4.txt
39ETAPE=$((ETAPE+1))
40fi
41
42if [ $ETAPE -eq 5 ]
43then
44echo $ETAPE. charger leur modifs et les traiter >&2
45cat $PREFIX-4.txt | while read i
46do
47        t=$(svn diff -c$i | 
48        grep '^+.*<traducteur' |
49        sed 's/^.*nom="//;s/".*$//'|
50        sort  -u |
51        tr "\n" "%");
52        echo "$i $t"
53done > $PREFIX-5.txt
54ETAPE=$((ETAPE+1))
55fi
56
57if [ $ETAPE -eq 6 ]
58then
59echo $ETAPE. Ne prendre que les commmit avec un seul traducteur >&2
60awk -F% '{if (NF == 2) print $1}' $PREFIX-5.txt > $PREFIX-6.txt
61ETAPE=$((ETAPE+1))
62fi
63
64if [ $ETAPE -eq 7 ]
65then
66echo $ETAPE. Prendre leur mail >&2
67if [ -f trad-mails.txt ]
68then 
69        cat $PREFIX-6.txt | while read numero traducteur
70        do
71                        mail=$(grep "^$traducteur%" trad-mails.txt| awk -F% '{print $2}')
72                        if [ -n "$mail" ]
73                        then 
74                            echo "$numero $mail"
75                        fi
76        done
77else
78        echo trad-mails.txt absent >&2
79fi
80fi
81rm $PREFIX-?.txt
Note: See TracBrowser for help on using the repository browser.