~nmu-sscheel/gtg/rework-task-editor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# Copyright © 2012 Izidor Matušov <izidor.matusov@gmail.com
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

import os
import sys
import re

exclude_list = ['data/.*', 'po/.*', 'doc/.*', 'AUTHORS', 'CHANGELOG',
    'LICENSE', 'README', 'gtcli_bash_completion', 'gtg.desktop',
    'org.gnome.GTG.service', 'setup.py',
]

# Build MANIFEST and also run build action
if os.system("python setup.py sdist > /dev/null") != 0:
    print "sdist operation failed"
    sys.exit(1)

if os.system("python setup.py build > /dev/null") != 0:
    print "build operation failed"
    sys.exit(1)

manifest_files = []

for f in open('MANIFEST', 'r'):
    f = f.strip()
    if f == "" or f.startswith('#'):
        continue
    f = os.path.normpath(f)

    exclude = False
    for ex in exclude_list:
        if re.match(ex, f):
            exclude = True
            break
    if exclude:
        continue

    manifest_files.append(f)

build_files = []
for root, dirs, files in os.walk('build/'):
    for f in files:
        filename = os.path.join(root, f)
        filename = filename.split('/', 1)[1]
        if filename.startswith('lib.') or filename.startswith('scripts-'):
            filename = filename.split('/', 1)[1]

        build_files.append(filename)

missing_files = list(set(manifest_files) - set(build_files))
if len(missing_files) > 0:
    missing_files.sort()
    print "Missing build files:"
    print "\n".join("\t%s" % f for f in missing_files)
    sys.exit(1)