tests/md5sum.py
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Mon, 30 Jul 2012 03:27:07 +0900
branchstable
changeset 17315 f320d7ed912f
parent 14494 1ffeeb91c55d
child 25660 328739ea70c3
permissions -rwxr-xr-x
histedit: make comment part of the file describing rules as translatable "i18n.gettext()" invocation for "editcomment" itself should have little impact for whole initialization cost of histedit, because it is already invoked for initialization of the command table entry. '\n\n' has to be added to the text being edited separately from "editcomment", because leading 'line feed' characters are not exported to "hg.pot" file correctly.

#!/usr/bin/env python
#
# Based on python's Tools/scripts/md5sum.py
#
# This software may be used and distributed according to the terms
# of the PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2, which is
# GPL-compatible.

import sys, os

try:
    from hashlib import md5
except ImportError:
    from md5 import md5

try:
    import msvcrt
    msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
    msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY)
except ImportError:
    pass

for filename in sys.argv[1:]:
    try:
        fp = open(filename, 'rb')
    except IOError, msg:
        sys.stderr.write('%s: Can\'t open: %s\n' % (filename, msg))
        sys.exit(1)

    m = md5()
    try:
        while True:
            data = fp.read(8192)
            if not data:
                break
            m.update(data)
    except IOError, msg:
        sys.stderr.write('%s: I/O error: %s\n' % (filename, msg))
        sys.exit(1)
    sys.stdout.write('%s  %s\n' % (m.hexdigest(), filename))

sys.exit(0)