diff options
| author | xrg <> | 2009-11-20 20:01:04 +0530 |
|---|---|---|
| committer | Harry (Open ERP) <hmo@tinyerp.com> | 2009-11-20 20:01:04 +0530 |
| commit | dad1ff955b636ccbad687f2f3f731ee8f512bd6f (patch) | |
| tree | e3405d96ef59f72094e5e300db24fb713e2b8838 /setup.py | |
| parent | b2a9a804ebf6c93ebe98751dd6b1008b8fe09306 (diff) | |
| parent | f566ea57a83bab87a8c7fa9743d190b4520c89e2 (diff) | |
[merge] merge from lp:~xrg/openobject-server/optimize-5.0 and removed some confilts
bzr revid: hmo@tinyerp.com-20091120143104-tb6136unkdw7yfy9
Diffstat (limited to 'setup.py')
| -rwxr-xr-x | setup.py | 66 |
1 files changed, 52 insertions, 14 deletions
@@ -73,11 +73,35 @@ def check_modules(): if not ok: sys.exit(1) -def find_addons(): +def _find_addons(): for (dp, dn, names) in os.walk(opj('bin', 'addons')): if '__terp__.py' in names: - modname = dp.replace(os.path.sep, '.').replace('bin', 'openerp-server', 1) - yield modname + modname = os.path.basename(dp) + yield (modname, dp) + #look for extra modules + try: + empath = os.getenv('EXTRA_MODULES_PATH','../addons/') + f = open(opj(empath,'server_modules.list'),'r') + # print 'Getting modules from:' , opj(empath,'server_modules.list') + mods = f.readlines() + for mname in mods: + mname = mname.strip() + if not mname: + continue + if os.path.exists(opj(empath,mname,'__terp__.py')): + yield ( mname, opj(empath,mname) ) + else: + print "Module %s specified, but no valid path." % mname + except: + pass + +__found_addons = None + +# Cache the results of _find_addons() and return them +def find_addons(found_addons = None): + if not found_addons: + found_addons = _find_addons() + return found_addons def data_files(): '''Build list of data files to be installed''' @@ -108,27 +132,40 @@ def data_files(): opj('bin', 'server.pkey'), opj('bin', 'server.cert')])) - for addon in find_addons(): - addonname = addon.split('.')[-1] - add_path = addon.replace('.', os.path.sep).replace('openerp-server', 'bin', 1) - addon_path = opj('lib', 'python%s' % py_short_version, 'site-packages', add_path.replace('bin', 'openerp-server', 1)) + if sys.version_info[0:2] == (2,5): + files.append((openerp_site_packages, [ opj('python25-compat','BaseHTTPServer.py'), + opj('python25-compat','SimpleXMLRPCServer.py'), + opj('python25-compat','SocketServer.py')])) + + for (addonname, add_path) in find_addons(): + addon_path = opj('lib', 'python%s' % py_short_version, 'site-packages', 'openerp-server','addons', addonname) pathfiles = [] for root, dirs, innerfiles in os.walk(add_path): - innerfiles = filter(lambda file: os.path.splitext(file)[1] not in ('.pyc', '.pyd', '.pyo'), innerfiles) + innerfiles = filter(lambda fil: os.path.splitext(fil)[1] not in ('.pyc', '.pyd', '.pyo'), innerfiles) if innerfiles: - res = os.path.normpath(opj(addon_path, root.replace(opj('bin','addons', addonname), '.'))) - pathfiles.extend(((res, map(lambda file: opj(root, file), innerfiles)),)) + res = os.path.normpath(opj(addon_path, root.replace(opj(add_path), '.'))) + pathfiles.extend(((res, map(lambda fil: opj(root, fil), innerfiles)),)) files.extend(pathfiles) + # for tup in files: + # print "Files:", tup[0], tup[1] return files -check_modules() +if not os.getenv('NO_CHECK_MODULES',False) : + check_modules() f = file('openerp-server','w') start_script = """#!/bin/sh\necho "OpenERP Setup - The content of this file is generated at the install stage\n" """ f.write(start_script) f.close() +def find_package_dirs(): + res = {} + for (mod, path) in find_addons(): + res ['openerp-server.addons.'+ mod ] = path + res ['openerp-server'] = 'bin' + return res + class openerp_server_install(install): def run(self): # create startup script @@ -179,12 +216,13 @@ setup(name = name, 'openerp-server.report.render', 'openerp-server.report.render.rml2pdf', 'openerp-server.report.render.rml2html', + 'openerp-server.report.render.rml2txt', + 'openerp-server.report.render.html2html', 'openerp-server.wizard', 'openerp-server.report.render.odt2odt', - 'openerp-server.report.render.html2html', 'openerp-server.workflow'] + \ - list(find_addons()), - package_dir = {'openerp-server': 'bin'}, + list(map( lambda (a, p): 'openerp-server.addons.'+ a ,find_addons())), + package_dir = find_package_dirs(), console = [ { "script" : "bin\\openerp-server.py", "icon_resources" : [ (1,"pixmaps\\openerp-icon.ico") ] } ], options = options, ) |
