1 #! /usr/bin/env python3
10 FSF
= 'by the Free Software Foundation, Inc.'
11 this_year
= datetime
.date
.today().year
12 pyre
= re
.compile(r
'# Copyright \(C\) ((?P<start>\d{4})-)?(?P<end>\d{4})')
14 MODE
= (stat
.S_IRWXU | stat
.S_IRWXG | stat
.S_IRWXO
)
17 def do_file(path
, owner
):
18 permissions
= os
.stat(path
).st_mode
& MODE
19 with
open(path
) as in_file
, open(path
+ '.out', 'w') as out_file
:
26 start
= (mo
.group('end')
27 if mo
.group('start') is None
28 else mo
.group('start'))
29 if int(start
) == this_year
:
32 print('# Copyright (C) {}-{} {}'.format(
33 start
, this_year
, owner
), file=out_file
)
37 except UnicodeDecodeError:
38 print('Cannot convert path:', path
)
39 os
.remove(path
+ '.out')
41 os
.rename(path
+ '.out', path
)
42 os
.chmod(path
, permissions
)
45 def remove(dirs
, path
):
57 for root
, dirs
, files
in os
.walk('.'):
62 remove(dirs
, 'contrib')
63 remove(dirs
, 'develop-eggs')
66 remove(dirs
, 'gnu-COPYING-GPL')
67 remove(dirs
, '.installed.cfg')
68 remove(dirs
, '.bzrignore')
69 remove(dirs
, 'distribute_setup.py')
71 remove(dirs
, 'mailman.egg-info')
72 if root
== './src/mailman':
73 remove(dirs
, 'messages')
74 for file_name
in files
:
75 if os
.path
.splitext(file_name
)[1] in ('.pyc', '.gz', '.egg'):
77 path
= os
.path
.join(root
, file_name
)
78 if os
.path
.isfile(path
):
82 if __name__
== '__main__':