diff --git a/invenio_utilities_tuw/cli/drafts.py b/invenio_utilities_tuw/cli/drafts.py index 5628728d3c41b7761311c3695f243fbc6d706750..8af203af262d6288acf7ca106e7dd8e119f36657 100644 --- a/invenio_utilities_tuw/cli/drafts.py +++ b/invenio_utilities_tuw/cli/drafts.py @@ -339,7 +339,16 @@ def add_files(filepaths, pid, pid_type, user): ) sys.exit(1) - # TODO: this fails if a file with the same name already exists + # check for existing duplicates + files = list(file_service.list_files(id_=recid, identity=identity).entries()) + existing_file_keys = [e["key"] for e in files] + if any([k for k in keys if k in existing_file_keys]): + click.secho( + "aborting: reuse of existing file names detected", fg="yellow", err=True + ) + sys.exit(1) + + # if all went well so far, continue on file_service.init_files( id_=recid, identity=identity, data=[{"key": basename(fp)} for fp in paths] )