sqlite.py 1.3 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 6
#
# Copyright © 2015 Jérémy Bobbio <lunar@debian.org>
#
Jérémy Bobbio's avatar
Jérémy Bobbio committed
7
# diffoscope is free software: you can redistribute it and/or modify
8 9 10 11
# 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
12
# diffoscope is distributed in the hope that it will be useful,
13 14 15 16 17
# 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
18
# along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.
19

20 21
import re

22
from diffoscope.tools import tool_required
Chris Lamb's avatar
Chris Lamb committed
23
from diffoscope.difference import Difference
24

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


class Sqlite3Dump(Command):
    @tool_required('sqlite3')
    def cmdline(self):
        return ['sqlite3', self.path, '.dump']


class Sqlite3Database(File):
36
    DESCRIPTION = "SQLite databases"
37
    FILE_TYPE_RE = re.compile(r'^SQLite 3.x database')
38 39 40

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