mono.py 1.35 KB
Newer Older
1 2
# -*- coding: utf-8 -*-
#
Jérémy Bobbio's avatar
Jérémy Bobbio committed
3
# diffoscope: in-depth comparison of files, archives, and directories
4 5
#
# Copyright © 2015 Daniel Kahn Gillmor <dkg@fifthhorseman.net>
6
#             2015 Jérémy Bobbio <lunar@debian.org>
7
#
Jérémy Bobbio's avatar
Jérémy Bobbio committed
8
# diffoscope is free software: you can redistribute it and/or modify
9 10 11 12
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
Jérémy Bobbio's avatar
Jérémy Bobbio committed
13
# diffoscope is distributed in the hope that it will be useful,
14 15 16 17 18
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
19
# along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.
20

21
import re
Chris Lamb's avatar
Chris Lamb committed
22

23
from diffoscope.tools import tool_required
Jérémy Bobbio's avatar
Jérémy Bobbio committed
24
from diffoscope.difference import Difference
25

26
from .utils.file import File
27
from .utils.command import Command
28 29 30 31 32 33 34 35


class Pedump(Command):
    @tool_required('pedump')
    def cmdline(self):
        return ['pedump', self.path]


36
class MonoExeFile(File):
37
    DESCRIPTION = "Mono 'Portable Executable' files"
38
    FILE_TYPE_RE = re.compile(r'\bPE[0-9]+\b.*\bMono\b')
39 40 41

    def compare_details(self, other, source=None):
        return [Difference.from_command(Pedump, self.path, other.path)]