mirror of https://github.com/CIRCL/Circlean
cleanup
parent
ce24b039d2
commit
54ab11b9d4
|
@ -3,6 +3,9 @@
|
||||||
import magic
|
import magic
|
||||||
import os
|
import os
|
||||||
import mimetypes
|
import mimetypes
|
||||||
|
import shlex
|
||||||
|
import subprocess
|
||||||
|
import time
|
||||||
|
|
||||||
from helpers import FileBase, KittenGroomerBase
|
from helpers import FileBase, KittenGroomerBase
|
||||||
|
|
||||||
|
@ -25,10 +28,10 @@ mimes_data = ['octet-stream']
|
||||||
|
|
||||||
class File(FileBase):
|
class File(FileBase):
|
||||||
|
|
||||||
def __init__(self, src_path, dst_path, main_type, sub_type):
|
def __init__(self, src_path, dst_path):
|
||||||
super(File, self).__init__(src_path, dst_path)
|
super(File, self).__init__(src_path, dst_path)
|
||||||
self.main_type = main_type
|
mimetype = magic.from_file(src_path, mime=True)
|
||||||
self.sub_type = sub_type
|
self.main_type, self.sub_type = mimetype.split('/')
|
||||||
self.log_details.update({'maintype': self.main_type, 'subtype': self.sub_type})
|
self.log_details.update({'maintype': self.main_type, 'subtype': self.sub_type})
|
||||||
self.expected_mimetype, self.expected_extensions = self.crosscheck_mime()
|
self.expected_mimetype, self.expected_extensions = self.crosscheck_mime()
|
||||||
self.is_recursive = False
|
self.is_recursive = False
|
||||||
|
@ -103,14 +106,6 @@ class KittenGroomer(KittenGroomerBase):
|
||||||
to_return[st] = fct
|
to_return[st] = fct
|
||||||
return to_return
|
return to_return
|
||||||
|
|
||||||
def _list_all_files(self, directory):
|
|
||||||
for root, dirs, files in os.walk(directory):
|
|
||||||
for filename in files:
|
|
||||||
filepath = os.path.join(root, filename)
|
|
||||||
mimetype = magic.from_file(filepath, mime=True)
|
|
||||||
maintype, subtype = mimetype.split('/')
|
|
||||||
yield filepath, maintype, subtype
|
|
||||||
|
|
||||||
def _print_log(self):
|
def _print_log(self):
|
||||||
tmp_log = self.log_name.fields(**self.cur_file.log_details)
|
tmp_log = self.log_name.fields(**self.cur_file.log_details)
|
||||||
if self.cur_file.log_details.get('dangerous'):
|
if self.cur_file.log_details.get('dangerous'):
|
||||||
|
@ -120,6 +115,16 @@ 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):
|
||||||
|
args = shlex.split(command_line)
|
||||||
|
p = subprocess.Popen(args)
|
||||||
|
while True:
|
||||||
|
code = p.poll()
|
||||||
|
if code is not None:
|
||||||
|
break
|
||||||
|
time.sleep(1)
|
||||||
|
return True
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
|
|
||||||
# ##### Discarded mime types, reason in the comments ######
|
# ##### Discarded mime types, reason in the comments ######
|
||||||
|
@ -269,13 +274,12 @@ class KittenGroomer(KittenGroomerBase):
|
||||||
archbomb_path = src_dir[:-len('_temp')]
|
archbomb_path = src_dir[:-len('_temp')]
|
||||||
self._safe_remove(archbomb_path)
|
self._safe_remove(archbomb_path)
|
||||||
|
|
||||||
for srcpath, maintype, subtype in self._list_all_files(src_dir):
|
for srcpath in self._list_all_files(src_dir):
|
||||||
self.log_name.info('Processing {} ({}/{})', srcpath.replace(src_dir + '/', ''),
|
self.cur_file = File(srcpath, srcpath.replace(src_dir, dst_dir))
|
||||||
maintype, subtype)
|
|
||||||
self.cur_file = File(srcpath, srcpath.replace(src_dir, dst_dir),
|
|
||||||
maintype, subtype)
|
|
||||||
|
|
||||||
self.mime_processing_options.get(maintype, self.unknown)()
|
self.log_name.info('Processing {} ({}/{})', srcpath.replace(src_dir + '/', ''),
|
||||||
|
self.cur_file.main_type, self.cur_file.sub_type)
|
||||||
|
self.mime_processing_options.get(self.cur_file.main_type, self.unknown)()
|
||||||
if not self.cur_file.is_recursive:
|
if not self.cur_file.is_recursive:
|
||||||
self._print_log()
|
self._print_log()
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,6 @@ class KittenGroomerPier9(KittenGroomerBase):
|
||||||
tmp_log.debug(self.cur_file.log_string)
|
tmp_log.debug(self.cur_file.log_string)
|
||||||
|
|
||||||
def processdir(self):
|
def processdir(self):
|
||||||
|
|
||||||
for srcpath in self._list_all_files(self.src_root_dir):
|
for srcpath in self._list_all_files(self.src_root_dir):
|
||||||
self.log_name.info('Processing {}', srcpath.replace(self.src_root_dir + '/', ''))
|
self.log_name.info('Processing {}', srcpath.replace(self.src_root_dir + '/', ''))
|
||||||
self.cur_file = FilePier9(srcpath, srcpath.replace(self.src_root_dir, self.dst_root_dir))
|
self.cur_file = FilePier9(srcpath, srcpath.replace(self.src_root_dir, self.dst_root_dir))
|
||||||
|
|
|
@ -3,9 +3,6 @@
|
||||||
import os
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
from twiggy import quickSetup, log
|
from twiggy import quickSetup, log
|
||||||
import shlex
|
|
||||||
import subprocess
|
|
||||||
import time
|
|
||||||
|
|
||||||
|
|
||||||
class KittenGroomerError(Exception):
|
class KittenGroomerError(Exception):
|
||||||
|
@ -90,19 +87,12 @@ class KittenGroomerBase(object):
|
||||||
filepath = os.path.join(root, filename)
|
filepath = os.path.join(root, filename)
|
||||||
yield filepath
|
yield filepath
|
||||||
|
|
||||||
def _run_process(self, command_line):
|
|
||||||
args = shlex.split(command_line)
|
|
||||||
p = subprocess.Popen(args)
|
|
||||||
while True:
|
|
||||||
code = p.poll()
|
|
||||||
if code is not None:
|
|
||||||
break
|
|
||||||
time.sleep(1)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def _print_log(self):
|
def _print_log(self):
|
||||||
# Not implemented
|
'''
|
||||||
pass
|
You probably want to reimplement it in the subclass
|
||||||
|
'''
|
||||||
|
tmp_log = self.log_name.fields(**self.cur_file.log_details)
|
||||||
|
tmp_log.info('It did a thing.')
|
||||||
|
|
||||||
#######################
|
#######################
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue