view unixSoft/bin/patchpipe @ 378:20e47bc8eea9

hgrc: disable hg-git and hgsubversion It hasn't been common for me to use either of these extensions for some time, so just drop both of them from the main hgrc. Instead I'll enable them as-needed in individual repositories.
author Augie Fackler <durin42@gmail.com>
date Thu, 09 Jun 2011 20:20:04 -0500
parents c7a9cd793e37
children a5a4f9e12c9f
line wrap: on
line source

#!/usr/bin/env python
import base64
import os
import subprocess
import sys
import tempfile

_PATCHHDR = '# HG changeset patch'

_BASE64_MAGIC = 'Content-Transfer-Encoding: base64'


def main(argv):
    tf = tempfile.NamedTemporaryFile(suffix='.diff')
    d = sys.stdin.read()
    if _PATCHHDR in d:
        junk, d = d.split(_PATCHHDR, 1)
        d = _PATCHHDR + d
    elif _BASE64_MAGIC in d:
        junk, d = d.split('\n\n', 1)
        d = d.decode('base64')
    tf.write(d)
    tf.flush()
    subprocess.check_call([os.environ['EDITOR'], tf.name],
                          stdout=sys.stderr)
    sys.stdout.write(open(tf.name).read())


if __name__ == '__main__':
    main(argv=sys.argv)