1 | #!/usr/bin/env python |
---|
2 | |
---|
3 | from setuptools import setup |
---|
4 | from gluon.fileutils import tar, untar, read_file, write_file |
---|
5 | import tarfile |
---|
6 | import sys |
---|
7 | |
---|
8 | |
---|
9 | def tar(file, filelist, expression='^.+$'): |
---|
10 | """ |
---|
11 | tars dir/files into file, only tars file that match expression |
---|
12 | """ |
---|
13 | |
---|
14 | tar = tarfile.TarFile(file, 'w') |
---|
15 | try: |
---|
16 | for element in filelist: |
---|
17 | try: |
---|
18 | for file in listdir(element, expression, add_dirs=True): |
---|
19 | tar.add(os.path.join(element, file), file, False) |
---|
20 | except: |
---|
21 | tar.add(element) |
---|
22 | finally: |
---|
23 | tar.close() |
---|
24 | |
---|
25 | |
---|
26 | def start(): |
---|
27 | if 'sdist' in sys.argv: |
---|
28 | tar('gluon/env.tar', ['applications', 'VERSION', |
---|
29 | 'extras/icons/splashlogo.gif']) |
---|
30 | |
---|
31 | setup(name='web2py', |
---|
32 | version=read_file("VERSION").split()[1], |
---|
33 | description="""full-stack framework for rapid development and prototyping |
---|
34 | of secure database-driven web-based applications, written and |
---|
35 | programmable in Python.""", |
---|
36 | long_description=""" |
---|
37 | Everything in one package with no dependencies. Development, deployment, |
---|
38 | debugging, testing, database administration and maintenance of applications can |
---|
39 | be done via the provided web interface. web2py has no configuration files, |
---|
40 | requires no installation, can run off a USB drive. web2py uses Python for the |
---|
41 | Model, the Views and the Controllers, has a built-in ticketing system to manage |
---|
42 | errors, an internationalization engine, works with SQLite, PostgreSQL, MySQL, |
---|
43 | MSSQL, FireBird, Oracle, IBM DB2, Informix, Ingres, sybase and Google App Engine via a |
---|
44 | Database Abstraction Layer. web2py includes libraries to handle |
---|
45 | HTML/XML, RSS, ATOM, CSV, RTF, JSON, AJAX, XMLRPC, WIKI markup. Production |
---|
46 | ready, capable of upload/download streaming of very large files, and always |
---|
47 | backward compatible. |
---|
48 | """, |
---|
49 | author='Massimo Di Pierro', |
---|
50 | author_email='mdipierro@cs.depaul.edu', |
---|
51 | license='http://web2py.com/examples/default/license', |
---|
52 | classifiers=["Development Status :: 5 - Production/Stable"], |
---|
53 | url='http://web2py.com', |
---|
54 | platforms='Windows, Linux, Mac, Unix,Windows Mobile', |
---|
55 | packages=['gluon', |
---|
56 | 'gluon/contrib', |
---|
57 | 'gluon/contrib/gateways', |
---|
58 | 'gluon/contrib/login_methods', |
---|
59 | 'gluon/contrib/markdown', |
---|
60 | 'gluon/contrib/markmin', |
---|
61 | 'gluon/contrib/memcache', |
---|
62 | 'gluon/contrib/fpdf', |
---|
63 | 'gluon/contrib/pymysql', |
---|
64 | 'gluon/contrib/pyrtf', |
---|
65 | 'gluon/contrib/pysimplesoap', |
---|
66 | 'gluon/contrib/plural_rules', |
---|
67 | 'gluon/contrib/minify', |
---|
68 | 'gluon/contrib/pyaes', |
---|
69 | 'gluon/contrib/pyuca', |
---|
70 | 'gluon/tests', |
---|
71 | ], |
---|
72 | package_data={'gluon': ['env.tar']}, |
---|
73 | # scripts=['w2p_apps', 'w2p_run', 'w2p_clone'], |
---|
74 | ) |
---|
75 | |
---|
76 | if __name__ == '__main__': |
---|
77 | #print "web2py does not require installation and" |
---|
78 | #print "you should just start it with:" |
---|
79 | #print |
---|
80 | #print "$ python web2py.py" |
---|
81 | #print |
---|
82 | #print "are you sure you want to install it anyway (y/n)?" |
---|
83 | #s = raw_input('>') |
---|
84 | #if s.lower()[:1]=='y': |
---|
85 | start() |
---|