mirror of https://github.com/CIRCL/PyCIRCLean
Merge branch 'master' of github.com:CIRCL/PyCIRCLean
commit
32d70efe29
|
@ -118,9 +118,8 @@ class KittenGroomer(KittenGroomerBase):
|
||||||
'inode': self.inode,
|
'inode': self.inode,
|
||||||
}
|
}
|
||||||
|
|
||||||
# Dirty trick to run libreoffice at least once and avoid unoconv to crash...
|
unoconv_listener = UNOCONV + ' --listener'
|
||||||
lo = LIBREOFFICE + ' --headless'
|
self._run_process(unoconv_listener, background=True)
|
||||||
self._run_process(lo, 5)
|
|
||||||
|
|
||||||
# ##### Helpers #####
|
# ##### Helpers #####
|
||||||
def _init_subtypes_application(self, subtypes_application):
|
def _init_subtypes_application(self, subtypes_application):
|
||||||
|
@ -145,7 +144,7 @@ class KittenGroomer(KittenGroomerBase):
|
||||||
else:
|
else:
|
||||||
tmp_log.debug(self.cur_file.log_string)
|
tmp_log.debug(self.cur_file.log_string)
|
||||||
|
|
||||||
def _run_process(self, command_line, timeout=0):
|
def _run_process(self, command_line, timeout=0, background=False):
|
||||||
'''Run subprocess, wait until it finishes'''
|
'''Run subprocess, wait until it finishes'''
|
||||||
if timeout != 0:
|
if timeout != 0:
|
||||||
deadline = time.time() + timeout
|
deadline = time.time() + timeout
|
||||||
|
@ -153,6 +152,10 @@ class KittenGroomer(KittenGroomerBase):
|
||||||
deadline = None
|
deadline = None
|
||||||
args = shlex.split(command_line)
|
args = shlex.split(command_line)
|
||||||
p = subprocess.Popen(args)
|
p = subprocess.Popen(args)
|
||||||
|
if background:
|
||||||
|
# FIXME: This timer is here to make sure the unoconv listener is properly started.
|
||||||
|
time.sleep(10)
|
||||||
|
return True
|
||||||
while True:
|
while True:
|
||||||
code = p.poll()
|
code = p.poll()
|
||||||
if code is not None:
|
if code is not None:
|
||||||
|
@ -331,7 +334,10 @@ class KittenGroomer(KittenGroomerBase):
|
||||||
|
|
||||||
self.log_name.info('Processing {} ({}/{})', srcpath.replace(src_dir + '/', ''),
|
self.log_name.info('Processing {} ({}/{})', srcpath.replace(src_dir + '/', ''),
|
||||||
self.cur_file.main_type, self.cur_file.sub_type)
|
self.cur_file.main_type, self.cur_file.sub_type)
|
||||||
self.mime_processing_options.get(self.cur_file.main_type, self.unknown)()
|
if self.cur_file.log_details.get('dangerous') is None:
|
||||||
|
self.mime_processing_options.get(self.cur_file.main_type, self.unknown)()
|
||||||
|
else:
|
||||||
|
self._safe_copy()
|
||||||
if not self.cur_file.is_recursive:
|
if not self.cur_file.is_recursive:
|
||||||
self._print_log()
|
self._print_log()
|
||||||
|
|
||||||
|
|
|
@ -89,10 +89,10 @@ class KittenGroomerBase(object):
|
||||||
self.src_root_dir = root_src
|
self.src_root_dir = root_src
|
||||||
self.dst_root_dir = root_dst
|
self.dst_root_dir = root_dst
|
||||||
self.log_root_dir = os.path.join(self.dst_root_dir, 'logs')
|
self.log_root_dir = os.path.join(self.dst_root_dir, 'logs')
|
||||||
|
self._safe_mkdir(self.log_root_dir)
|
||||||
self.log_processing = os.path.join(self.log_root_dir, 'processing.log')
|
self.log_processing = os.path.join(self.log_root_dir, 'processing.log')
|
||||||
|
|
||||||
# quickSetup(file=self.log_processing)
|
quickSetup(file=self.log_processing)
|
||||||
quickSetup()
|
|
||||||
self.log_name = log.name('files')
|
self.log_name = log.name('files')
|
||||||
|
|
||||||
self.cur_file = None
|
self.cur_file = None
|
||||||
|
|
Loading…
Reference in New Issue