tests/md5sum.py
author Angel Ezquerra <angel.ezquerra@gmail.com>
Thu, 28 Aug 2014 17:23:05 +0200
changeset 22362 c9b32c6a2944
parent 14494 1ffeeb91c55d
child 25660 328739ea70c3
permissions -rwxr-xr-x
localrepo: make it possible to pass multiple path elements to join and wjoin This makes join and wjoin behave in the same way as os.path.join. That is, it makes it possible to pass more than one path element to them. Note that the first path element is still required, as it was before this patch, and as is the case for os.path.join.

#!/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)