diff --git a/filecheck/filecheck.py b/filecheck/filecheck.py index cd45f39..be90b82 100644 --- a/filecheck/filecheck.py +++ b/filecheck/filecheck.py @@ -754,13 +754,14 @@ class KittenGroomerFileCheck(KittenGroomerBase): self.process_archive(file) else: if file.should_copy: - file.safe_copy() - file.set_property('copied', True) - print(file) - if not file._validate_random_hashes(): - # Something's fucked up. - file.make_dangerous('The copied file is different from the one checked, removing.') - file.dst_path.unlink() + if file.safe_copy(): + file.set_property('copied', True) + if not file._validate_random_hashes(): + # Something's fucked up. + file.make_dangerous('The copied file is different from the one checked, removing.') + file.dst_path.unlink() + else: + file.set_property('copied', False) self.write_file_to_log(file) # TODO: Can probably handle cleaning up the tempdir better if hasattr(file, 'tempdir_path'): diff --git a/kittengroomer/helpers.py b/kittengroomer/helpers.py index 097e2ad..9d2ef4e 100644 --- a/kittengroomer/helpers.py +++ b/kittengroomer/helpers.py @@ -13,6 +13,7 @@ import hashlib import shutil import argparse import stat +import traceback from pathlib import Path from typing import Union, Optional, List, Dict, Any, Tuple, Iterator @@ -188,14 +189,17 @@ class FileBase(object): dst = self.dst_path try: self.dst_dir.mkdir(exist_ok=True, parents=True) - shutil.copy(str(src), str(dst)) + shutil.copy(src, dst) current_perms = self._get_file_permissions(dst) only_exec_bits = 0o0111 perms_no_exec = current_perms & (~only_exec_bits) dst.chmod(perms_no_exec) + return True except IOError as e: # Probably means we can't write in the dest dir self.add_error(e, '') + traceback.print_exc() + return False def force_ext(self, extension: str): """If dst_path does not end in `extension`, append .ext to it."""