[PATCH 1 of 2] sha1sum.py: sha1sum for platforms which do not provide it
David M. Carr
david at carrclan.us
Mon Oct 31 13:30:17 UTC 2011
+1, as someone who was developing an unrelated change on Mac OS X and
had this test fail because sha1sum wasn't present.
On Sun, Oct 30, 2011 at 3:08 PM, Christian Ebert <blacktrash at gmx.net> wrote:
> # HG changeset patch
> # User Christian Ebert <blacktrash at gmx.net>
> # Date 1320001536 -3600
> # Branch stable
> # Node ID 96211cffd4d151f9c1fb34d38bb67eba5b92b944
> # Parent 87248de091352f746e8cd1cee01af29138c8e443
> sha1sum.py: sha1sum for platforms which do not provide it
>
> sha1sum might not be present on some platforms, for instance MacOS X,
> therefore provide a python script mimicking the already present
> md5sum.py.
>
> diff --git a/tests/sha1sum.py b/tests/sha1sum.py
> new file mode 100755
> --- /dev/null
> +++ b/tests/sha1sum.py
> @@ -0,0 +1,42 @@
> +#!/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 sha1
> +except ImportError:
> + from sha import sha as sha1
> +
> +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 = sha1()
> + 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)
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
>
--
David M. Carr
david at carrclan.us
More information about the Mercurial-devel
mailing list