Skip to content

Commit

Permalink
[CHG] Scan the files in the setup directory to remove the directories…
Browse files Browse the repository at this point in the history
… that are not linked to an addon.
  • Loading branch information
benwillig committed Apr 17, 2018
1 parent 67d8a2d commit ac0d183
Showing 1 changed file with 26 additions and 7 deletions.
33 changes: 26 additions & 7 deletions setuptools_odoo/make_default_setup.py
Expand Up @@ -10,9 +10,6 @@
import subprocess

from .core import is_installable_addon, _get_version, make_pkg_requirement
from .manifest import read_manifest

from .core import is_installable_addon, _get_version
from .manifest import read_manifest, NoManifestFound

_logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -145,6 +142,7 @@ def make_default_setup_addons_dir(addons_dir, force,
make_default_setup_addon(addon_setup_dir, addon_dir, force,
odoo_version_override)


def make_default_meta_package(addons_dir, name):
meta_install_requires = []
new_version = False
Expand Down Expand Up @@ -235,19 +233,40 @@ def get_next_version(odoo_version, version_date, old_version=None):
def clean_setup_addons_dir(addons_dir):
paths_to_remove = []

for addon_name in os.listdir(addons_dir):
addons_setup_dir = os.path.join(addons_dir, 'setup')
for addon_name in os.listdir(addons_setup_dir):
addon_setup_dir = os.path.join(addons_setup_dir, addon_name)
addon_setup_file = os.path.join(addon_setup_dir, 'setup.py')
odoo_lt_10_module_link = os.path.join(
addon_setup_dir, 'odoo_addons', addon_name)
odoo_gt_10_module_link = os.path.join(
addon_setup_dir, 'odoo', 'addons', addon_name)

is_setup_dir = (
os.path.exists(addon_setup_file) and
(
os.path.islink(odoo_lt_10_module_link) or
os.path.islink(odoo_gt_10_module_link)
)
)
if not is_setup_dir:
# The entry will be skipped in case it's a file or
# if the directory is not considered as a setup directory for an
# addon
continue

addon_dir = os.path.join(addons_dir, addon_name)
is_installable = is_installable_addon(addon_dir)
try:
# File or directory is not an addon. Skip it
manifest = read_manifest(addon_dir)
except NoManifestFound:
continue
manifest = None

addon_setup_dir = os.path.join(addons_dir, 'setup', addon_name)
if not is_installable:
if not is_installable or not manifest:
paths_to_remove.append(addon_setup_dir)
continue

version, odoo_version_info = _get_version(
addon_dir, manifest, git_post_version=False)
odoo_version = int(version.split('.')[0])
Expand Down

0 comments on commit ac0d183

Please sign in to comment.