Clear import directory, possibly
This commit is contained in:
1 parent
52a8589261
commit
22c04f6e15
7 files changed
+88
-6
No files matched your search
@@ -5,15 +5,40 @@ from collections.abc import Sequence
|
||||
from pathlib import Path
|
||||
|
||||
from copienator import (
|
||||
CliError,
|
||||
EvaluationWorkspace,
|
||||
ExitCode,
|
||||
evaluation_parser,
|
||||
execute,
|
||||
workspace_from_args,
|
||||
)
|
||||
from copienator.configuration import IMPORT_DIR
|
||||
from copienator import configuration
|
||||
|
||||
ANNOTATION_DIRECTORIES = ("BGnot", "Bnot", "Anot")
|
||||
IMPORT_DIR = getattr(configuration, "IMPORT_DIR", None)
|
||||
|
||||
|
||||
def clear_import_directory(workspace: EvaluationWorkspace) -> None:
|
||||
"""Empty the configured import folder while preserving the folder itself."""
|
||||
if IMPORT_DIR is None or not str(IMPORT_DIR).strip():
|
||||
print("Aucun dossier d’import configuré ; aucun fichier supprimé.")
|
||||
return
|
||||
directory = Path(IMPORT_DIR).expanduser().resolve()
|
||||
if workspace.root.resolve().is_relative_to(directory) or Path.cwd().resolve().is_relative_to(directory):
|
||||
raise CliError(f"Le dossier d’import ne peut pas contenir l’évaluation ou le projet : {directory}",
|
||||
ExitCode.INVALID_ARGUMENTS)
|
||||
if not directory.exists():
|
||||
print(f"Dossier d’import absent ; aucun fichier supprimé : {directory}")
|
||||
return
|
||||
if not directory.is_dir():
|
||||
raise CliError(f"Le dossier d’import n’est pas un dossier : {directory}",
|
||||
ExitCode.INVALID_ARGUMENTS)
|
||||
for child in directory.iterdir():
|
||||
if child.is_dir() and not child.is_symlink():
|
||||
shutil.rmtree(child)
|
||||
else:
|
||||
child.unlink()
|
||||
print(f"Dossier d’import vidé : {directory}", flush=True)
|
||||
|
||||
|
||||
def sync_annotated(
|
||||
|
||||
Reference in new issue
Block a user