mirror of https://github.com/CIRCL/PyCIRCLean
fix: Do not fail if a file couldn't be copied
parent
f3cbeb87e4
commit
55b56c2422
|
@ -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'):
|
||||
|
|
|
@ -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."""
|
||||
|
|
Loading…
Reference in New Issue