pgtoolkit/colordiff.py
author Radek Brich <radek.brich@devl.cz>
Thu, 31 Jan 2013 13:24:57 +0100
changeset 63 8c7f0a51ba50
permissions -rw-r--r--
PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
63
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     1
from subprocess import Popen, PIPE
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     2
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     3
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     4
def colordiff(diff):
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     5
    """Colorize diff output using external program colordiff"""
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     6
    try:
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     7
        p = Popen(["colordiff"], stdin=PIPE, stdout=PIPE, close_fds=True)
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     8
        outs, _errs = p.communicate(diff.encode('utf8'))
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
     9
        return outs.decode('utf8')
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    10
    except OSError:
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    11
        return diff
8c7f0a51ba50 PgDiff, schemadiff.py: Add function filter. Add --body parameter to diff function source.
Radek Brich <radek.brich@devl.cz>
parents:
diff changeset
    12