Source code for mass_driver.drivers.deleter

"""Blindly deletes specific given files"""

from pathlib import Path

from mass_driver.models.patchdriver import PatchDriver, PatchOutcome, PatchResult
from mass_driver.models.repository import ClonedRepo


[docs] class FileDeleter(PatchDriver): """Deletes files specified""" deletion_target: str | list[str] """The specific file or files to delete"""
[docs] def run(self, repo: ClonedRepo) -> PatchResult: """Apply file deletion""" target_files = self.deletion_target if isinstance(self.deletion_target, str): target_files = [self.deletion_target] files_deleted = [] for file_to_delete in target_files: abs_to_delete = repo.cloned_path / Path(file_to_delete) if not abs_to_delete.is_file(): continue abs_to_delete.unlink() files_deleted.append(file_to_delete) if not files_deleted: return PatchResult(outcome=PatchOutcome.PATCH_DOES_NOT_APPLY) return PatchResult(outcome=PatchOutcome.PATCHED_OK)