2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-15 03:25:42 +00:00

Catch errors

This commit is contained in:
Oliver Walters
2024-11-17 05:26:15 +00:00
parent 734211f6f2
commit b93cf4c9d1

View File

@ -407,15 +407,25 @@ def uninstall_from_plugins_dir(cfg: plugin.models.PluginConfig):
if plugin_dir and plugin_dir.is_relative_to(plugin_install_dir):
logger.info('Removing plugin directory: %s', plugin_dir)
shutil.rmtree(plugin_dir)
try:
shutil.rmtree(plugin_dir)
except Exception:
logger.exception('Failed to remove plugin directory: %s', plugin_dir)
log_error(f'plugins.{package_name}.uninstall_from_plugins_dir')
raise ValidationError(_('Failed to remove plugin directory'))
# Finally, remote the dist-info directory (if it exists)
# Finally, remove the dist-info directory (if it exists)
dist_pkg_name = package_name.replace('-', '_')
dist_dirs = plugin_install_dir.glob(f'{dist_pkg_name}-*.dist-info')
for dd in dist_dirs:
logger.info('Removing dist-info directory: %s', dd)
shutil.rmtree(dd)
try:
shutil.rmtree(dd)
except Exception:
logger.exception('Failed to remove dist-info directory: %s', dd)
log_error(f'plugins.{package_name}.uninstall_from_plugins_dir')
raise ValidationError(_('Failed to remove plugin directory'))
def uninstall_from_pip(cfg: plugin.models.PluginConfig):