diff --git a/NEWS.rst b/NEWS.rst index e05905d98a14c862f5aefad72f136eea33be36ba_TkVXUy5yc3Q=..70b9968ed5db39044d6b09249f36459e10539a56_TkVXUy5yc3Q= 100644 --- a/NEWS.rst +++ b/NEWS.rst @@ -7,6 +7,7 @@ Add odoo 13. Add ODOO_ADDONS_PATH env var to start. +Add option to bind odoo sources in the image 3.0 --- diff --git a/odoo_scripts/docker_dev_start.py b/odoo_scripts/docker_dev_start.py index e05905d98a14c862f5aefad72f136eea33be36ba_b2Rvb19zY3JpcHRzL2RvY2tlcl9kZXZfc3RhcnQucHk=..70b9968ed5db39044d6b09249f36459e10539a56_b2Rvb19zY3JpcHRzL2RvY2tlcl9kZXZfc3RhcnQucHk= 100755 --- a/odoo_scripts/docker_dev_start.py +++ b/odoo_scripts/docker_dev_start.py @@ -32,7 +32,7 @@ __version__ = "2.0.3" __date__ = "2017-08-11" -__updated__ = "2020-06-22" +__updated__ = "2020-06-26" def which(program): @@ -341,6 +341,11 @@ const=-1, dest="start_py3o", ) + parser.add_argument( + "--odoo-sources", + help="Odoo sources to use, if any [default: %(default)s]", + default=None, + ) # TODO detect that user is member of docker group @@ -369,6 +374,7 @@ database = nmspc.database load_language = "" installing_or_updating = False + odoo_sources = nmspc.odoo_sources if restore_filename: if not database: @@ -814,6 +820,38 @@ if odoo_help: arg.append("--help") + # bind Odoo sources + if odoo_sources: + _logger.info("Binding Odoo sources at %s", odoo_sources) + if odoo_type in ("odoo10", "odoo11", "odoo13"): + # Image 11 uses python 3.5 if based on xenial, or 3.6 for bionic + # 13 uses bionic + if odoo_type == "odoo10": + pythons = ("python2.7",) + elif odoo_type == "odoo11": + pythons = ("python3.5", "python3.6") + else: + pythons = ("python3.6",) + for python in pythons: + binds.append( + "%s/odoo:/usr/local/lib/%s/dist-packages/odoo" + % (odoo_sources, python) + ) + binds.append( + "%s/addons:/usr/local/lib/%s/dist-packages/odoo/addons" + % (odoo_sources, python) + ) + binds.append( + "%s/odoo/addons/base:/usr/local/lib/%s/dist-packages/" + "odoo/addons/base" % (odoo_sources, python) + ) + elif odoo_type in ("odoo7", "odoo8"): + binds.append("%s/odoo:/opt/odoo/sources/odoo" % odoo_sources) + else: + raise Exception( + "Unexpected odoo_type when binding sources: %s" % odoo_type + ) + # use call to allow usage of pdb for bind in binds: options.append("--volume")