Code

Ticket #8536: t8536-r8534.diff

File t8536-r8534.diff, 4.1 KB (added by ramiro, 6 years ago)

Patch, applies to trunk as of r8534

Line 
1Index: django/core/management/commands/makemessages.py
2===================================================================
3--- django/core/management/commands/makemessages.py     (revision 8534)
4+++ django/core/management/commands/makemessages.py     (working copy)
5@@ -106,16 +106,19 @@
6                 msgs = stdout.read()
7                 errors = stderr.read()
8                 if errors:
9+                    os.unlink(os.path.join(dirpath, thefile))
10+                    if os.path.exists(potfile):
11+                        os.unlink(potfile)
12                     raise CommandError("errors happened while running xgettext on %s\n%s" % (file, errors))
13-                old = '#: '+os.path.join(dirpath, thefile)[2:]
14-                new = '#: '+os.path.join(dirpath, file)[2:]
15-                msgs = msgs.replace(old, new)
16-                if os.path.exists(potfile):
17-                    # Strip the header
18-                    msgs = '\n'.join(dropwhile(len, msgs.split('\n')))
19-                else:
20-                    msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
21                 if msgs:
22+                    old = '#: '+os.path.join(dirpath, thefile)[2:]
23+                    new = '#: '+os.path.join(dirpath, file)[2:]
24+                    msgs = msgs.replace(old, new)
25+                    if os.path.exists(potfile):
26+                        # Strip the header
27+                        msgs = '\n'.join(dropwhile(len, msgs.split('\n')))
28+                    else:
29+                        msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
30                     open(potfile, 'ab').write(msgs)
31                 os.unlink(os.path.join(dirpath, thefile))
32             elif domain == 'django' and (file_ext == '.py' or file_ext in extensions):
33@@ -132,17 +135,21 @@
34                 msgs = stdout.read()
35                 errors = stderr.read()
36                 if errors:
37+                    if thefile != file:
38+                        os.unlink(os.path.join(dirpath, thefile))
39+                    if os.path.exists(potfile):
40+                        os.unlink(potfile)
41                     raise CommandError("errors happened while running xgettext on %s\n%s" % (file, errors))
42-                if thefile != file:
43-                    old = '#: '+os.path.join(dirpath, thefile)[2:]
44-                    new = '#: '+os.path.join(dirpath, file)[2:]
45-                    msgs = msgs.replace(old, new)
46-                if os.path.exists(potfile):
47-                    # Strip the header
48-                    msgs = '\n'.join(dropwhile(len, msgs.split('\n')))
49-                else:
50-                    msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
51                 if msgs:
52+                    if thefile != file:
53+                        old = '#: '+os.path.join(dirpath, thefile)[2:]
54+                        new = '#: '+os.path.join(dirpath, file)[2:]
55+                        msgs = msgs.replace(old, new)
56+                    if os.path.exists(potfile):
57+                        # Strip the header
58+                        msgs = '\n'.join(dropwhile(len, msgs.split('\n')))
59+                    else:
60+                        msgs = msgs.replace('charset=CHARSET', 'charset=UTF-8')
61                     open(potfile, 'ab').write(msgs)
62                 if thefile != file:
63                     os.unlink(os.path.join(dirpath, thefile))
64@@ -152,13 +159,15 @@
65             msgs = stdout.read()
66             errors = stderr.read()
67             if errors:
68+                os.unlink(potfile)
69                 raise CommandError("errors happened while running msguniq\n%s" % errors)
70-            open(potfile, 'w').write(msgs)
71             if os.path.exists(pofile):
72+                open(potfile, 'w').write(msgs)
73                 (stdin, stdout, stderr) = os.popen3('msgmerge -q "%s" "%s"' % (pofile, potfile), 'b')
74                 msgs = stdout.read()
75                 errors = stderr.read()
76                 if errors:
77+                    os.unlink(potfile)
78                     raise CommandError("errors happened while running msgmerge\n%s" % errors)
79             open(pofile, 'wb').write(msgs)
80             os.unlink(potfile)