From 01787a81ad35ff8a3e6a6ecae75fcbbd4afe6bc8 Mon Sep 17 00:00:00 2001 From: Florian du Garage Num Date: Thu, 2 Nov 2023 09:57:08 +0100 Subject: [PATCH] update init script --- docs/divers/devops/odoo/devmodule.md | 55 +++++++--------------------- 1 file changed, 14 insertions(+), 41 deletions(-) diff --git a/docs/divers/devops/odoo/devmodule.md b/docs/divers/devops/odoo/devmodule.md index f019a340..420e08f1 100644 --- a/docs/divers/devops/odoo/devmodule.md +++ b/docs/divers/devops/odoo/devmodule.md @@ -70,6 +70,10 @@ Ce script python va permettre d'automatiser l'installation des modules de base {'url': 'https://github.com/OCA/web', 'apps': [ {'name': 'web_responsive'} + ]}, + {'url': 'https://gitlab.com/garagenum/odoo/gn_discount', + 'apps': [ + {'name': None} ]} ] @@ -124,35 +128,13 @@ Ce script python va permettre d'automatiser l'installation des modules de base repo_url = group['url'].rstrip('/') addons_path = "addons" - #git_dir_path = os.path.join(addons_path, '.git') - #subprocess.run(["mkdir", "-p", git_dir_path]) - sparse_checkout_lines = [] - #search_git = True for app in group['apps']: - app_dir = app['dir'] if 'dir' in app else app['name'] - #app_path = os.path.join(addons_path, app_dir) - #backup_git_path = os.path.join(app_path, ".git_backup") + if app['name'] != None: + app_dir = app['dir'] if 'dir' in app else app['name'] + sparse_checkout_lines.append(f"{app_dir}\n") - sparse_checkout_lines.append(f"{app_dir}\n") - - #subprocess.run(["mkdir", "-p", app_path]) - #if search_git and os.path.isdir(backup_git_path): - # #shutil.copytree(backup_git_path, git_dir_path, dirs_exist_ok=True) - # search_git = False - ''' - for app in group['apps']: - app_dir = app['dir'] if 'dir' in app else app['name'] - app_path = os.path.join(addons_path, app_dir) - #backup_git_path = os.path.join(app_path, ".git_backup") - if os.path.isdir(backup_git_path): - shutil.rmtree(backup_git_path) - subprocess.run(["mkdir", "-p", backup_git_path]) - #shutil.copytree(git_dir_path, backup_git_path, dirs_exist_ok=True) - print(f"backup for app {app['name']}") - ''' - - clone_path = 'tmp' + clone_path = 'tmp' if group['apps'][0]['name'] != None else os.path.join('tmp', group['url'].split('/')[-1]) clone_full_path = os.path.join(addons_path, clone_path) git_dir_path = os.path.join(clone_full_path, '.git') sparse_checkout_file_path = os.path.join(git_dir_path, 'info', 'sparse-checkout') @@ -162,29 +144,19 @@ Ce script python va permettre d'automatiser l'installation des modules de base subprocess.run(["git", "clone", "--filter=blob:none", "--sparse", "--branch", branch_name, "--depth", "1", repo_url, clone_path], cwd=addons_path, check=True) if not os.path.isdir(sparse_checkout_file_path): - #subprocess.run(["git", "init"], cwd=addons_path) - #subprocess.run(["git", "remote", "add", "origin", repo_url], cwd=addons_path) subprocess.run(["git", "config", "core.sparseCheckout", "true"], cwd=clone_full_path, check=True) with open(sparse_checkout_file_path, "w") as sparse_checkout_file: sparse_checkout_file.writelines(sparse_checkout_lines) - - #subprocess.run(["git", "fetch", "--filter=blob:none", "--sparse", "--depth", "1", "origin", branch_name], cwd=addons_path, check=True) - #subprocess.run(["git", "clone", "--filter=blob:none", "--sparse", "--depth", "1"], cwd=addons_path, check=True) - print("starting git checkout") subprocess.run(["git", "checkout", branch_name], cwd=clone_full_path, check=True) - #subprocess.run(["git", "pull", "--depth=1", "origin", branch_name], cwd=addons_path, check=True) - #shutil.rmtree(git_dir_path) - for folder in os.listdir(clone_full_path): - if folder != '.git': - folder_path = os.path.join(clone_full_path, folder) - merge_directories(clone_full_path, addons_path) - shutil.rmtree(clone_full_path) + src_path = os.path.join(addons_path, 'tmp') + merge_directories(src_path, addons_path) + shutil.rmtree(src_path) - print(f"Modules {', '.join(app['name'] for app in group['apps'])} has been downloaded") + print(f"Modules {', '.join(app['name'] if app['name'] else group['url'] for app in group['apps'])} has been downloaded") def update_module_list(odoo): ModuleUpdate = odoo.env['base.module.update'] @@ -203,7 +175,8 @@ Ce script python va permettre d'automatiser l'installation des modules de base time.sleep(1) for group in MODULES_TO_INSTALL: for app in group['apps']: - install_app(odoo, app['name']) + app_name = app['name'] if app['name'] != None else group['url'].split('/')[-1] + install_app(odoo, app_name) def main(): configure_folders()