[diffoscope] 01/02: Add support for .dtb (device tree blob) files.

Vagrant Cascadian vagrant at moszumanska.debian.org
Mon Apr 24 19:49:28 CEST 2017


This is an automated email from the git hooks/post-receive script.

vagrant pushed a commit to branch vagrant/dtb
in repository diffoscope.

commit c55c67da65ed37bd4268005fbdede27767b1331b
Author: Vagrant Cascadian <vagrant at debian.org>
Date:   Mon Apr 24 10:21:21 2017 -0700

    Add support for .dtb (device tree blob) files.
---
 diffoscope/comparators/__init__.py |  1 +
 diffoscope/comparators/dtb.py      | 39 ++++++++++++++++++++++++++++++++++++++
 diffoscope/external_tools.py       |  3 +++
 3 files changed, 43 insertions(+)

diff --git a/diffoscope/comparators/__init__.py b/diffoscope/comparators/__init__.py
index 81f6d16..6527b6d 100644
--- a/diffoscope/comparators/__init__.py
+++ b/diffoscope/comparators/__init__.py
@@ -84,6 +84,7 @@ class ComparatorManager(object):
         ('gif.GifFile',),
         ('pcap.PcapFile',),
         ('pgp.PgpFile',),
+        ('dtb.DeviceTreeFile',),
     )
 
     _singleton = {}
diff --git a/diffoscope/comparators/dtb.py b/diffoscope/comparators/dtb.py
new file mode 100644
index 0000000..12dbf39
--- /dev/null
+++ b/diffoscope/comparators/dtb.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+#
+# diffoscope: in-depth comparison of files, archives, and directories
+#
+# Copyright © 2016 Emanuel Bronshtein <e3amn2l at gmx.com>
+# Copyright © 2016 Vagrant Cascadian <vagrant at debian.org>
+#
+# diffoscope is free software: you can redistribute it and/or modify
+# 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.
+#
+# diffoscope is distributed in the hope that it will be useful,
+# 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
+# along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.
+
+import re
+
+from diffoscope.tools import tool_required
+from diffoscope.difference import Difference
+
+from .utils.file import File
+from .utils.command import Command
+
+
+class DeviceTreeContents(Command):
+    @tool_required('fdtdump')
+    def cmdline(self):
+        return ['fdtdump', self.path]
+
+class DeviceTreeFile(File):
+    RE_FILE_TYPE = re.compile(r'^Device Tree Blob')
+
+    def compare_details(self, other, source=None):
+        return [Difference.from_command(DeviceTreeContents, self.path, other.path)]
diff --git a/diffoscope/external_tools.py b/diffoscope/external_tools.py
index 3ce2cbd..8788936 100644
--- a/diffoscope/external_tools.py
+++ b/diffoscope/external_tools.py
@@ -57,6 +57,9 @@ EXTERNAL_TOOLS = {
         'debian': 'enjarify',
         'arch': 'enjarify',
     },
+    'fdtdump': {
+        'debian': 'device-tree-compiler',
+    },
     'file': {
         'debian': 'file',
         'arch': 'file',

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git


More information about the diffoscope mailing list