6
0
mirror of https://github.com/ChristianLight/tutor.git synced 2024-12-11 21:57:59 +00:00

Improve plugin data deletion

This commit is contained in:
Régis Behmo 2020-09-04 12:03:50 +02:00
parent 5a2d6a8542
commit fd50f3c384
2 changed files with 15 additions and 4 deletions

View File

@ -4,6 +4,7 @@ Note: Breaking changes between versions are indicated by "💥".
## Unreleased
- [Improvement] Improve plugin data deletion
- [Improvement] Introduce the `OPENEDX_COMMON_VERSION` setting
- [Bugfix] Make it possible to run init jobs without starting the entire platform
- [Improvement] Reduce "openedx" Docker image size with static asset de-duplication

View File

@ -57,10 +57,7 @@ def disable(context, plugin_names):
config = tutor_config.load_user(context.root)
for plugin in plugin_names:
plugins.disable(config, plugin)
plugin_dir = tutor_env.pathjoin(context.root, "plugins", plugin)
if os.path.exists(plugin_dir):
shutil.rmtree(plugin_dir)
delete_plugin(context.root, plugin)
fmt.echo_info("Plugin {} disabled".format(plugin))
tutor_config.save_config_file(context.root, config)
@ -69,6 +66,19 @@ def disable(context, plugin_names):
)
def delete_plugin(root, name):
plugin_dir = tutor_env.pathjoin(root, "plugins", name)
if os.path.exists(plugin_dir):
try:
shutil.rmtree(plugin_dir)
except PermissionError as e:
raise exceptions.TutorError(
"Could not delete file {} from plugin {} in folder {}".format(
e.filename, name, plugin_dir
)
)
@click.command(
short_help="Print the location of yaml-based plugins",
help="""Print the location of yaml-based plugins. This location can be manually