File: prebuild.py

package info (click to toggle)
tuxpaint 1%3A0.9.14-2sarge0
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 9,836 kB
  • ctags: 1,018
  • sloc: ansic: 19,591; makefile: 856; objc: 191; cpp: 118; python: 54; sh: 52
file content (65 lines) | stat: -rw-r--r-- 2,076 bytes parent folder | download
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
import sys, re, os, fnmatch

def lfcr(file):
    if os.path.isdir(file):
        print file, "Directory!"
        return
    data = open(file, "rb").read()
    if '\0' in data:
        print file, "Binary!"
        return
    newdata = re.sub("\r?\n", "\r\n", data)
    if newdata != data:
        print "Converting '"+file+"' to CRLF format."
        f = open(file, "wb")
        f.write(newdata)
        f.close()

def makeFolders(path):
    if not os.path.exists(path):
        os.makedirs(path)

def po2mo(pfx, input, output):
    output_path = os.path.join(output,pfx,"LC_MESSAGES")
    makeFolders(output_path)
    output_path = os.path.join(output_path,"tuxpaint.mo")
    os.system("msgfmt.exe -o"+output_path+" "+input+pfx+".po")

def add2filelist(fp, destination, source):
    absSource = os.path.abspath(source)
    for root, dirs, filenames in os.walk(source):
        fp.write("  SetOutPath $INSTDIR\\%s"%destination)
        relpath = os.path.abspath(root)[len(absSource)+1:]
        if relpath: fp.write("\\%s"%relpath)
        fp.write("\n")
        for file in filenames:
            fp.write('  File "%s"\n'%os.path.join(root, file))
        if 'CVS' in dirs: dirs.remove('CVS')  # don't visit CVS directories
        if 'cvs' in dirs: dirs.remove('cvs')

# makes sure the text docs are in CRLF format for notepad users(!)
docs = "../docs/"
for doc in os.listdir(docs):
    fullpath = docs+doc
    if os.path.isdir(fullpath): continue
    lfcr(fullpath)

# generates the '.mo' files used by gettext
pos = "../src/po/"
mos = "locale"
makeFolders(mos)
for po in fnmatch.filter(os.listdir(pos), "*.po"):
    fullpath = pos+po
    if os.path.isdir(fullpath): continue
    po2mo(os.path.splitext(po)[0], pos, mos)

# builds 'filelist.inc'. Prevents cvs clutter from being packaged by NSIS
fp = open("filelist.inc", "w")
add2filelist(fp, "data", "..\\data")
add2filelist(fp, "data\\fonts", "..\\fonts")
add2filelist(fp, "data\\starters", "..\\starters")
add2filelist(fp, "data\\stamps", "..\\stamps")
add2filelist(fp, "docs", "..\\docs")
fp.write("\n")
fp.close()