-
Notifications
You must be signed in to change notification settings - Fork 9
/
package.py
121 lines (102 loc) · 5.55 KB
/
package.py
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# This file is part of Gertrude.
#
# Gertrude 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.
#
# Gertrude 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 Gertrude; if not, see <http://www.gnu.org/licenses/>.
from __future__ import unicode_literals
from __future__ import print_function
import glob
import os
import shutil
import sys
import fnmatch
from version import VERSION
def main():
if sys.platform == "win32":
import win32api
for directory in ("./dist", "./build"):
if os.path.isdir(directory):
shutil.rmtree(directory)
if 1:
os.chdir("WinPython-32bit-2.7.13.1Zero")
paths = ["notebooks", "scripts", "settings", "tools"] + glob.glob("*.exe") + glob.glob("python-2.7.13/Scripts/*.exe")
paths += [("python-2.7.13/" + path) for path in ("NEWS.txt", "README.txt", "w9xpopen.exe", "Doc", "include", "Logs", "tcl", "Lib\site-packages\prompt_toolkit", "Lib\site-packages\pygments", "Lib\site-packages\setuptools", "Lib\ensurepip", "Lib\site-packages\win32\Demos", "Lib\site-packages\pip", "Lib\site-packages\jedi", "Lib/unittest", "Lib/test", "Lib/lib2to3", "Lib/lib-tk", "Lib/idlelib", "Lib/distutils", "Lib/ctypes", "Lib/compiler", "Lib/site-packages/wx/tools/Editra", "Lib/site-packages/wx/tools/XRCed")]
for root, dirnames, filenames in os.walk('python-2.7.13'):
for filename in fnmatch.filter(filenames, '*.pyc') + fnmatch.filter(filenames, '*.chm'):
paths.append(os.path.join(root, filename))
# for filename in filenames:
# if os.stat(os.path.join(root, filename)).st_size > 10000:
# print(os.path.join(root, filename), os.stat(os.path.join(root, filename)).st_size)
for path in paths:
print("Remove %s" % path)
if os.path.isdir(path):
shutil.rmtree(path)
elif os.path.exists(path):
os.remove(path)
os.chdir("..")
issfile = "setup.iss"
isscontents = open(issfile + ".template").read().decode("utf-8")
isscontents = isscontents.replace("@VERSION@", VERSION)
open(issfile, "w").write(isscontents.encode("windows-1252"))
path, name = os.path.split(issfile)
isspath = os.path.split(win32api.FindExecutable(name, path)[-1])[0]
if not os.system('\"%s\ISCC.exe\" %s' % (isspath, issfile)):
exe = "./Output/setup_%s.exe" % VERSION
if os.path.isfile(exe):
os.remove(exe)
os.rename("./Output/setup.exe", exe)
print("File %s generated (%d bytes)" % (exe, os.stat(exe).st_size))
elif sys.platform == "darwin":
import certifi
from setuptools import setup
app = ["gertrude.pyw"]
data_files = glob.glob("bitmaps_dist/*.png") + [("pictos", glob.glob("bitmaps_dist/pictos/*.png"))] + glob.glob("bitmaps_dist/*.ico") + glob.glob("templates_dist/*.html") + glob.glob("templates_dist/*.txt") + glob.glob("templates_dist/*.od?") + [certifi.where()]
options = {"site_packages": True,
"arch": "i386",
"iconfile": "bitmaps_dist/gertrude.icns",
"argv_emulation": True,
"includes": ["bcrypt", "_cffi_backend", "requests", "sqlalchemy", "sqlalchemy.sql.default_comparator", "sqlalchemy_utils", "configparser", "future", "chardet"],
"packages": ["requests"]
}
setup(
name="Gertrude",
app=app,
data_files=data_files,
options={"py2app": options},
setup_requires=["py2app", "requests"],
install_requires=["requests"]
)
elif "linux" in sys.platform:
if not os.path.exists("./gertrude.py"):
os.symlink("./gertrude.pyw", "./gertrude.py")
from py2deb import Py2deb
p = Py2deb("gertrude")
p.author = "Bertrand Songis"
p.mail = "bsongis@gmail.com"
p.description = "Logiciel de gestion de creches"
p.url = "https://www.gertrude-logiciel.org"
p.icon = "./bitmaps_dist/gertrude.png"
p.depends = "bash, python, python-gtk2, python-bcrypt, python-wxgtk2.8 | python-wxgtk3.0, python-requests, python-sqlalchemy, python-sqlalchemy-utils, python-future, python-configparser, python-chardet"
p.license = "gpl"
p.section = "utils"
p.arch = "all"
p["/usr/share/applications"] = ["./linux/gertrude.desktop|gertrude.desktop"]
p["/usr/share/gertrude"] = glob.glob("./*.py") + glob.glob("./generation/*.py") + glob.glob("./demo.db") + glob.glob("./bitmaps_dist/*.*") + glob.glob("./bitmaps_dist/pictos/*") + glob.glob("./templates_dist/*.html") + glob.glob("./templates_dist/*.txt") + glob.glob("./templates_dist/*.od?")
p["/usr/bin"] = ["./linux/gertrude|gertrude"]
p["/usr/share/doc/gertrude"] = ["COPYING"]
p.generate(VERSION, "", rpm=True, src=True)
else:
print("Plateforme %s non supportée" % sys.platform)
if __name__ == '__main__':
main()