|
|
|
@ -23,12 +23,12 @@ import subprocess
|
|
|
|
|
from subprocess import Popen,PIPE,STDOUT
|
|
|
|
|
import stat
|
|
|
|
|
from shutil import copytree, rmtree
|
|
|
|
|
import ctypes
|
|
|
|
|
import cl_overriding
|
|
|
|
|
import re
|
|
|
|
|
import sys
|
|
|
|
|
import getpass
|
|
|
|
|
from types import StringType
|
|
|
|
|
import magic as type_file
|
|
|
|
|
|
|
|
|
|
import cl_lang
|
|
|
|
|
tr = cl_lang.lang()
|
|
|
|
@ -56,21 +56,17 @@ class typeFile:
|
|
|
|
|
"""Получение типа файла"""
|
|
|
|
|
|
|
|
|
|
def __init__(self, magic=0x410):
|
|
|
|
|
# Загружаем libmagic.so
|
|
|
|
|
self.lib = ctypes.cdll.LoadLibrary("libmagic.so")
|
|
|
|
|
self.lib.error.restype = ctypes.c_char_p
|
|
|
|
|
self.lib.magic_file.restype = ctypes.c_char_p
|
|
|
|
|
# 0x10 | 0x400 = MAGIC_MIME (константа, декларируется в magic.h)
|
|
|
|
|
self.magic = self.lib.magic_open(magic)
|
|
|
|
|
self.lib.magic_load(self.magic, None)
|
|
|
|
|
self.magicObject = type_file.open(type_file.MAGIC_NONE)
|
|
|
|
|
self.magicObject.load()
|
|
|
|
|
self.magicObject.setflags(magic)
|
|
|
|
|
|
|
|
|
|
def __del__(self):
|
|
|
|
|
"""Закрываем magic"""
|
|
|
|
|
self.lib.magic_close(self.magic)
|
|
|
|
|
self.magicObject.close()
|
|
|
|
|
|
|
|
|
|
def getMType(self, filename):
|
|
|
|
|
"""Информация о типе файла"""
|
|
|
|
|
return self.lib.magic_file(self.magic, filename)
|
|
|
|
|
return self.magicObject.file(filename)
|
|
|
|
|
|
|
|
|
|
def isBinary(self, filename):
|
|
|
|
|
"""является ли файл бинарным"""
|
|
|
|
|