Moved get_module_root in openerp.modules.module

This commit is contained in:
Fabien Meghazi 2014-05-29 18:23:48 +02:00
parent 5f717cfdd2
commit 0e01164842
2 changed files with 33 additions and 19 deletions

View File

@ -11,6 +11,7 @@ import sys
import jinja2
from . import Command
from openerp.modules.module import get_module_root
MANIFEST = '__openerp__'
@ -181,22 +182,6 @@ def directory(p, create=False):
die("%s exists but is not a directory" % p)
return expanded
def get_module_root(path):
"""
Get closest module's root begining from path
@param path: Path from which the lookup should start
@return: Module root path
"""
# find the module's root directory
while not os.path.exists(os.path.join(path, '%s.py' % MANIFEST)):
new_path = os.path.abspath(os.path.join(path, os.pardir))
if path == new_path:
return None
path = new_path
return path
def die(message, code=1):
print >>sys.stderr, message
sys.exit(code)

View File

@ -37,6 +37,8 @@ import openerp.tools as tools
import openerp.release as release
from openerp.tools.safe_eval import safe_eval as eval
MANIFEST = '__openerp__.py'
_logger = logging.getLogger(__name__)
# addons path as a list
@ -169,6 +171,33 @@ def get_module_icon(module):
return ('/' + module + '/') + '/'.join(iconpath)
return '/base/' + '/'.join(iconpath)
def get_module_root(path):
"""
Get closest module's root begining from path
# Given:
# /foo/bar/module_dir/static/src/...
get_module_root('/foo/bar/module_dir/static/')
# returns '/foo/bar/module_dir'
get_module_root('/foo/bar/module_dir/')
# returns '/foo/bar/module_dir'
get_module_root('/foo/bar')
# returns None
@param path: Path from which the lookup should start
@return: Module root path or None if not found
"""
while not os.path.exists(os.path.join(path, MANIFEST)):
new_path = os.path.abspath(os.path.join(path, os.pardir))
if path == new_path:
return None
path = new_path
return path
def load_information_from_description_file(module, mod_path=None):
"""
:param module: The name of the module (sale, purchase, ...)
@ -177,7 +206,7 @@ def load_information_from_description_file(module, mod_path=None):
if not mod_path:
mod_path = get_module_path(module)
terp_file = mod_path and opj(mod_path, '__openerp__.py') or False
terp_file = mod_path and opj(mod_path, MANIFEST) or False
if terp_file:
info = {}
if os.path.isfile(terp_file):
@ -219,7 +248,7 @@ def load_information_from_description_file(module, mod_path=None):
#TODO: refactor the logger in this file to follow the logging guidelines
# for 6.0
_logger.debug('module %s: no __openerp__.py file found.', module)
_logger.debug('module %s: no %s file found.', module, MANIFEST)
return {}
def init_module_models(cr, module_name, obj_list):
@ -291,7 +320,7 @@ def get_modules():
return name
def is_really_module(name):
manifest_name = opj(dir, name, '__openerp__.py')
manifest_name = opj(dir, name, MANIFEST)
zipfile_name = opj(dir, name)
return os.path.isfile(manifest_name)
return map(clean, filter(is_really_module, os.listdir(dir)))