From d3cfa1050e8a2f496bc00cf426bcf2dcfe1cceb8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 28 Feb 2023 13:32:00 +0100 Subject: [PATCH] Fix deployment of metapackages --- htdocs/admin/modules.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php index 953d8f85a68..75187346558 100644 --- a/htdocs/admin/modules.php +++ b/htdocs/admin/modules.php @@ -205,6 +205,7 @@ if ($action == 'install') { dol_syslog("Uncompress of module file is a success."); + // We check if this is a metapackage $modulenamearrays = array(); if (dol_is_file($modulenamedir.'/metapackage.conf')) { // This is a meta package @@ -214,6 +215,7 @@ if ($action == 'install') { $modulenamearrays[$modulename] = $modulename; //var_dump($modulenamearrays);exit; + // Lop on each packacge of the metapackage foreach ($modulenamearrays as $modulenameval) { if (strpos($modulenameval, '#') === 0) { continue; // Discard comments @@ -227,13 +229,14 @@ if ($action == 'install') { // Now we install the module if (!$error) { - @dol_delete_dir_recursive($dirins.'/'.$modulenameval); // delete the zip file - dol_syslog("We copy now directory ".$conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulenameval." into target dir ".$dirins.'/'.$modulenameval); - $result = dolCopyDir($modulenamedir, $dirins.'/'.$modulenameval, '0444', 1); + @dol_delete_dir_recursive($dirins.'/'.$modulenameval); // delete the target directory + $submodulenamedir = $conf->admin->dir_temp.'/'.$tmpdir.'/htdocs/'.$modulenameval; + dol_syslog("We copy now directory ".$submodulenamedir." into target dir ".$dirins.'/'.$modulenameval); + $result = dolCopyDir($submodulenamedir, $dirins.'/'.$modulenameval, '0444', 1); if ($result <= 0) { - dol_syslog('Failed to call dolCopyDir result='.$result." with param ".$modulenamedir." and ".$dirins.'/'.$modulenameval, LOG_WARNING); + dol_syslog('Failed to call dolCopyDir result='.$result." with param ".$submodulenamedir." and ".$dirins.'/'.$modulenameval, LOG_WARNING); $langs->load("errors"); - setEventMessages($langs->trans("ErrorFailToCopyDir", $modulenamedir, $dirins.'/'.$modulenameval), null, 'errors'); + setEventMessages($langs->trans("ErrorFailToCopyDir", $submodulenamedir, $dirins.'/'.$modulenameval), null, 'errors'); $error++; } }