Mercurial > libervia-web
annotate setup.py @ 995:f88325b56a6a
server: dynamic pages first draft:
/!\ new dependency: autobahn
This patch introduce server part of dynamic pages.
Dynamic pages use websockets to establish constant connection with a Libervia page, allowing to receive real time data or update it.
The feature is activated by specifying "dynamic = true" in the page.
Once activated, page can implement "on_data" method which will be called when data are sent by the page.
To send data the other way, the page can use request.sendData.
The new "registerSignal" method allows to use an "on_signal" method to be called each time given signal is received, with automatic (and optional) filtering on profile.
New renderPartial and renderAndUpdate method allow to append new HTML elements to the dynamic page.
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 03 Jan 2018 01:10:12 +0100 |
parents | 1bbc29aad56a |
children | 3bf61858a123 |
rev | line source |
---|---|
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
1 #!/usr/bin/env python2 |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
3 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
4 # Libervia: a Salut à Toi frontend |
818 | 5 # Copyright (C) 2011-2016 Jérôme Poisson (goffi@goffi.org) |
6 # Copyright (C) 2013-2016 Adrien Cossa (souliane@mailoo.org) | |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
7 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
8 # This program is free software: you can redistribute it and/or modify |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
9 # it under the terms of the GNU Affero General Public License as published by |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
10 # the Free Software Foundation, either version 3 of the License, or |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
11 # (at your option) any later version. |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
12 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
13 # This program is distributed in the hope that it will be useful, |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
16 # GNU Affero General Public License for more details. |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
17 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
18 # You should have received a copy of the GNU Affero General Public License |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
19 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
20 |
560
77bf2654ca0a
installation: replaced the deprecated distribute_setup.py by ez_setup.py
Goffi <goffi@goffi.org>
parents:
551
diff
changeset
|
21 from ez_setup import use_setuptools |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
22 use_setuptools() |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
23 from setuptools.command.install import install |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
24 from setuptools import setup |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
25 from distutils.file_util import copy_file |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
26 import os |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
27 import sys |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
28 import subprocess |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
29 from stat import ST_MODE |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
30 import shutil |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
31 from src.server.constants import Const as C |
563 | 32 import tempfile |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
33 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
34 # seen here: http://stackoverflow.com/questions/7275295 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
35 try: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
36 from setuptools.command import egg_info |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
37 egg_info.write_toplevel_names |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
38 except (ImportError, AttributeError): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
39 pass |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
40 else: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
41 def _top_level_package(name): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
42 return name.split('.', 1)[0] |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
43 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
44 def _hacked_write_toplevel_names(cmd, basename, filename): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
45 pkgs = dict.fromkeys( |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
46 [_top_level_package(k) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
47 for k in cmd.distribution.iter_distribution_names() |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
48 if _top_level_package(k) != "twisted" |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
49 ] |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
50 ) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
51 cmd.write_file("top-level names", filename, '\n'.join(pkgs) + '\n') |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
52 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
53 egg_info.write_toplevel_names = _hacked_write_toplevel_names |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
54 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
55 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
56 NAME = 'libervia' |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
57 LAUNCH_DAEMON_COMMAND = 'libervia' |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
58 |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
59 ENV_LIBERVIA_INSTALL = "LIBERVIA_INSTALL" # environment variable to customise installation |
732
9596da27cd7c
install: added jsdebug option to use debug mode with pyjsbuild, don't use it by default
Goffi <goffi@goffi.org>
parents:
715
diff
changeset
|
60 JS_DEBUG = "jsdebug" # use debug mode with pyjsbuild |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
61 NO_PREINSTALL_OPT = 'nopreinstall' # skip all preinstallation checks |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
62 AUTO_DEB_OPT = 'autodeb' # automaticaly install debs |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
63 CLEAN_OPT = 'clean' # remove previous installation directories |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
64 PURGE_OPT = 'purge' # remove building and previous installation directories |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
65 |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
66 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
67 class MercurialException(Exception): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
68 pass |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
69 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
70 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
71 def module_installed(module_name): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
72 """Try to import module_name, and return False if it failed |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
73 @param module_name: name of the module to test |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
74 @return: True if successful""" |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
75 try: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
76 __import__(module_name) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
77 except ImportError: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
78 return False |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
79 return True |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
80 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
81 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
82 class CustomInstall(install): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
83 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
84 def custom_auto_options(self): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
85 """Change options for twistd in the shell script |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
86 Mainly change the paths""" |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
87 sh_buffer = "" |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
88 with open(self.sh_script_path, 'r') as sh_file: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
89 for ori_line in sh_file: |
513 | 90 if ori_line.startswith('PLUGIN_OPTIONS='): |
91 dest_line = 'PLUGIN_OPTIONS="-d %s"\n' % self.install_data_dir | |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
92 elif ori_line.startswith('PYTHON='): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
93 dest_line = 'PYTHON="%s"\n' % sys.executable |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
94 else: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
95 dest_line = ori_line |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
96 sh_buffer += dest_line |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
97 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
98 with open(self.sh_script_path, 'w') as sh_file: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
99 sh_file.write(sh_buffer) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
100 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
101 def custom_create_links(self): |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
102 """Create symbolic links to executables""" |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
103 # the script which launch the daemon |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
104 for source, dest in self.sh_script_links: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
105 if os.path.islink(dest) and os.readlink(dest) != source: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
106 os.remove(dest) # copy_file doesn't force the link update |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
107 dest_name, copied = copy_file(source, dest, link='sym') |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
108 assert (copied) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
109 # we change the perm in the same way as in the original install_scripts |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
110 mode = ((os.stat(dest_name)[ST_MODE]) | 0555) & 07777 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
111 os.chmod(dest_name, mode) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
112 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
113 def pyjs_build(self): |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
114 """Build the browser side JS files from Python source.""" |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
115 cwd = os.getcwd() |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
116 os.chdir(os.path.join('src', 'browser')) |
563 | 117 # we must have only certain package in the path, so we create a tmp dir to link only what we need |
118 tmp_dir = tempfile.mkdtemp() | |
119 import sat, sat_frontends, libervia | |
120 os.symlink(os.path.dirname(sat.__file__), os.path.join(tmp_dir,"sat")) # FIXME: only work on unixes | |
121 os.symlink(os.path.dirname(sat_frontends.__file__), os.path.join(tmp_dir,"sat_frontends")) # FIXME: only work on unixes | |
122 os.symlink(os.path.dirname(libervia.__file__), os.path.join(tmp_dir,"libervia")) # FIXME: only work on unixes | |
602
be3fd3874c3a
add very basic test system accessible from <root_url>/test, to be improved:
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
123 for module in ('libervia_main', 'libervia_test'): |
732
9596da27cd7c
install: added jsdebug option to use debug mode with pyjsbuild, don't use it by default
Goffi <goffi@goffi.org>
parents:
715
diff
changeset
|
124 build_args = ['pyjsbuild', module] + (['-d'] if JS_DEBUG in install_opt else []) + ['--no-compile-inplace', '-I', tmp_dir, '-o', self.pyjamas_output_dir] |
9596da27cd7c
install: added jsdebug option to use debug mode with pyjsbuild, don't use it by default
Goffi <goffi@goffi.org>
parents:
715
diff
changeset
|
125 result = subprocess.call(build_args) |
602
be3fd3874c3a
add very basic test system accessible from <root_url>/test, to be improved:
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
126 if result != 0: |
be3fd3874c3a
add very basic test system accessible from <root_url>/test, to be improved:
souliane <souliane@mailoo.org>
parents:
584
diff
changeset
|
127 continue |
563 | 128 shutil.rmtree(tmp_dir) |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
129 os.chdir(cwd) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
130 return result |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
131 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
132 def copy_data_files(self): |
513 | 133 # XXX: To copy the JS files couldn't be done with the data_files parameter |
134 # of setuptools.setup because all the files to be copied must exist before | |
135 # the call. Also, we need the value of self.install_lib to build the JS | |
136 # files (it's not easily predictable as it may vary from one system to | |
137 # another), so we can't call pyjsbuild before setuptools.setup. | |
138 | |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
139 html = os.path.join(self.install_data_dir, C.HTML_DIR) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
140 if os.path.isdir(html): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
141 shutil.rmtree(html, ignore_errors=True) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
142 shutil.copytree(self.pyjamas_output_dir, html) |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
143 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
144 def run(self): |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
145 self.sh_script_path = os.path.join(self.install_lib, NAME, 'libervia.sh') |
493 | 146 self.sh_script_links = [(self.sh_script_path, os.path.join(self.install_scripts, LAUNCH_DAEMON_COMMAND))] |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
147 self.install_data_dir = os.path.join(self.install_data, 'share', NAME) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
148 self.pyjamas_output_dir = os.path.join(os.getcwd(), 'html') |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
149 sys.stdout.write('running pre installation stuff\n') |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
150 sys.stdout.flush() |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
151 if PURGE_OPT in install_opt: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
152 self.purge() |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
153 elif CLEAN_OPT in install_opt: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
154 self.clean() |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
155 install.run(self) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
156 sys.stdout.write('running post installation stuff\n') |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
157 sys.stdout.flush() |
905
09b0a968a36a
installation (setup): fixed OSError when pyjsbuild is not found
Goffi <goffi@goffi.org>
parents:
903
diff
changeset
|
158 try: |
09b0a968a36a
installation (setup): fixed OSError when pyjsbuild is not found
Goffi <goffi@goffi.org>
parents:
903
diff
changeset
|
159 build_result = self.pyjs_build() # build after libervia.common is accessible |
09b0a968a36a
installation (setup): fixed OSError when pyjsbuild is not found
Goffi <goffi@goffi.org>
parents:
903
diff
changeset
|
160 except OSError as e: |
09b0a968a36a
installation (setup): fixed OSError when pyjsbuild is not found
Goffi <goffi@goffi.org>
parents:
903
diff
changeset
|
161 print "can't run pyjsbuild, are you sure pyjamas is installed?\nexception: {}".format(e) |
09b0a968a36a
installation (setup): fixed OSError when pyjsbuild is not found
Goffi <goffi@goffi.org>
parents:
903
diff
changeset
|
162 return |
09b0a968a36a
installation (setup): fixed OSError when pyjsbuild is not found
Goffi <goffi@goffi.org>
parents:
903
diff
changeset
|
163 if build_result == 127: # TODO: remove magic string # FIXME: seems useless as an OSError is raised if pyjsbuild is not accessible |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
164 print "pyjsbuild is not installed or not accessible from the PATH of user '%s'" % os.getenv('USERNAME') |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
165 return |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
166 if build_result != 0: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
167 print "pyjsbuild failed to build libervia" |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
168 return |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
169 self.copy_data_files() |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
170 self.custom_auto_options() |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
171 self.custom_create_links() |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
172 |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
173 def confirm(self, message): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
174 """Ask the user for a confirmation""" |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
175 message += 'Proceed' |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
176 while True: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
177 res = raw_input("%s (y/n)? " % message) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
178 if res not in ['y', 'Y', 'n', 'N']: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
179 print "Your response ('%s') was not one of the expected responses: y, n" % res |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
180 message = 'Proceed' |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
181 continue |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
182 if res in ('y', 'Y'): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
183 return True |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
184 return False |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
185 |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
186 def clean(self, message=None, to_remove=None): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
187 """Clean previous installation directories |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
188 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
189 @param message (str): to use a non-default confirmation message |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
190 @param to_remove (str): extra files/directories to remove |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
191 """ |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
192 if message is None: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
193 message = "Cleaning previous installation directories" |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
194 if to_remove is None: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
195 to_remove = [] |
501
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
196 for path in [os.path.join(self.install_lib, NAME), |
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
197 self.install_data_dir, |
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
198 os.path.join(self.install_data, 'share', 'doc', NAME), |
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
199 os.path.join(self.install_lib, "%s.egg-info" % self.config_vars['dist_fullname']), |
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
200 os.path.join(self.install_lib, "%s-py%s.egg-info" % (self.config_vars['dist_fullname'], self.config_vars['py_version_short'])), |
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
201 ]: |
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
202 if os.path.isdir(path): |
b483f1c88b7c
setup: cleaning also handles egg filenames not containing the python version
souliane <souliane@mailoo.org>
parents:
493
diff
changeset
|
203 to_remove.append(path) |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
204 for source, dest in self.sh_script_links: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
205 if os.path.islink(dest): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
206 to_remove.append(dest) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
207 plugin_file = os.path.join(self.install_lib, 'twisted', 'plugins', NAME) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
208 if os.path.isfile(plugin_file): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
209 to_remove.append(plugin_file) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
210 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
211 message = "%s:\n%s\n" % (message, "\n".join([" %s" % path for path in to_remove])) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
212 if not self.confirm(message): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
213 return |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
214 sys.stdout.write('cleaning previous installation directories...\n') |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
215 sys.stdout.flush() |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
216 for path in to_remove: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
217 if os.path.isdir(path): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
218 shutil.rmtree(path, ignore_errors=True) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
219 else: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
220 os.remove(path) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
221 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
222 def purge(self): |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
223 """Clean building and previous installation directories""" |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
224 message = "Cleaning building and previous installation directories" |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
225 to_remove = [os.path.join(os.getcwd(), 'build'), self.pyjamas_output_dir] |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
226 self.clean(message, to_remove) |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
227 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
228 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
229 def preinstall_check(install_opt): |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
230 """Check presence of problematic dependencies, and try to install them with package manager |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
231 This ugly stuff is necessary as distributions are not installed correctly with setuptools/distribute |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
232 Hope to remove this at some point""" |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
233 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
234 modules_tocheck = [] # if empty this method is dummy |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
235 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
236 package = {'twisted': 'python-twisted-core', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
237 'twisted.words': 'python-twisted-words', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
238 'twisted.web': 'python-twisted-web', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
239 'mercurial': 'mercurial'} # this dict map dependencies to packages names for debian distributions |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
240 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
241 sys.stdout.write("Running pre-installation dependencies check\n") |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
242 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
243 # which modules are not installed ? |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
244 modules_toinstall = [mod for mod in modules_tocheck if not module_installed(mod)] |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
245 """# is mercurial available ? |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
246 hg_installed = subprocess.call('which hg', stdout=open('/dev/null', 'w'), shell=True) == 0 |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
247 if not hg_installed: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
248 modules_toinstall.append('mercurial')""" # hg can be installed from pypi |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
249 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
250 if modules_toinstall: |
451 | 251 if AUTO_DEB_OPT in install_opt: # auto debian installation is requested |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
252 # are we on a distribution using apt ? |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
253 apt_path = subprocess.Popen('which apt-get', stdout=subprocess.PIPE, shell=True).communicate()[0][:-1] |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
254 else: |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
255 apt_path = None |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
256 |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
257 not_installed = set() |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
258 if apt_path: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
259 # we have apt, we'll try to use it |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
260 for module_name in modules_toinstall: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
261 package_name = package[module_name] |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
262 sys.stdout.write("Installing %s\n" % package_name) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
263 success = subprocess.call('%s -qy install %s' % (apt_path, package_name), shell=True) == 0 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
264 if not success: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
265 not_installed.add(module_name) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
266 else: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
267 not_installed = set(modules_toinstall) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
268 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
269 if not_installed: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
270 # some packages can't be automatically installed, we print their name for manual installation |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
271 sys.stdout.write("You should install the following dependencies with your distribution recommanded tool before installing %s:\n" % NAME) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
272 for module_name in not_installed: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
273 sys.stdout.write("- %s (Debian name: %s)\n" % (module_name, package[module_name])) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
274 sys.exit(2) |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
275 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
276 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
277 if sys.argv[1].lower() in ['egg_info', 'install']: |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
278 # we only check dependencies if egg_info or install is used |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
279 install_opt = os.environ.get(ENV_LIBERVIA_INSTALL, "").split() |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
280 if not NO_PREINSTALL_OPT in install_opt: # user can force preinstall skipping |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
281 preinstall_check(install_opt) |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
282 |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
283 setup(name=NAME, |
907
3d372805f60c
installation (setup.py): changed version to 0.6.1.1 so new archive with fixed MANIFEST can be uploaded on pypi
Goffi <goffi@goffi.org>
parents:
905
diff
changeset
|
284 version='0.6.1.1', |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
285 description=u'Web frontend for Salut à Toi', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
286 long_description=u'Libervia is a web frontend for Salut à Toi (SàT), a multi-frontends and multi-purposes XMPP client.', |
513 | 287 author='Association « Salut à Toi »', |
288 author_email='contact@goffi.org', | |
411
a0256b81d367
setup.py: update website (it's not http://www.salut-a-toi.org), and removed pyjamas framework which is not standard in pypi
Goffi <goffi@goffi.org>
parents:
385
diff
changeset
|
289 url='http://www.salut-a-toi.org', |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
290 classifiers=['Development Status :: 3 - Alpha', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
291 'Environment :: Web Environment', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
292 'Framework :: Twisted', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
293 'License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
294 'Operating System :: POSIX :: Linux', |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
295 'Topic :: Communications :: Chat'], |
449
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
296 package_dir={'libervia': 'src', 'twisted.plugins': 'src/twisted/plugins'}, |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
297 packages=['libervia', 'libervia.common', 'libervia.server', 'twisted.plugins'], |
981ed669d3b3
/!\ reorganize all the file hierarchy, move the code and launching script to src:
souliane <souliane@mailoo.org>
parents:
447
diff
changeset
|
298 package_data={'libervia': ['libervia.sh']}, |
703
1a19ee7d8d8a
server_side: add default theme
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
299 data_files=[(os.path.join('share', 'doc', NAME), ['COPYING', 'README', 'INSTALL']), ] + |
1a19ee7d8d8a
server_side: add default theme
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
300 [(os.path.join('share', NAME, root), |
1a19ee7d8d8a
server_side: add default theme
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
301 [os.path.join(root, f) for f in files]) |
1a19ee7d8d8a
server_side: add default theme
souliane <souliane@mailoo.org>
parents:
685
diff
changeset
|
302 for root, dirs, files in os.walk(C.THEMES_DIR)], |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
303 scripts=[], |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
304 zip_safe=False, |
995 | 305 install_requires=['sat', 'twisted', 'txJSON-RPC==0.3.1', 'zope.interface', 'pyopenssl', 'jinja2', 'shortuuid', 'autobahn'], |
360
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
306 cmdclass={'install': CustomInstall}, |
9834136b15ed
added setup.py for the installation with setuptools
souliane <souliane@mailoo.org>
parents:
diff
changeset
|
307 ) |