FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Tools/scripts/md5sum.py at pythoncapi · pythoncapi/cpython · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
pythoncapi
/
cpython
Public
forked from
python/cpython
Notifications
You must be signed in to change notification settings
Fork
0
Star
1
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Tools
/
scripts
/
md5sum.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
executable file
·
93 lines (83 loc) · 2.45 KB
Breadcrumbs
cpython
/
Tools
/
scripts
/
md5sum.py
Copy path
File metadata and controls
executable file
·
93 lines (83 loc) · 2.45 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#! /usr/bin/env python3
"""Python utility to print MD5 checksums of argument files.
"""
bufsize
=
8096
fnfilter
=
None
rmode
=
'rb'
usage
=
"""
usage: md5sum.py [-b] [-t] [-l] [-s bufsize] [file ...]
-b : read files in binary mode (default)
-t : read files in text mode (you almost certainly don't want this!)
-l : print last pathname component only
-s bufsize: read buffer size (default %d)
file ... : files to sum; '-' or no files means stdin
"""
%
bufsize
import
io
import
sys
import
os
import
getopt
from
hashlib
import
md5
def
sum
(
*
files
):
sts
=
0
if
files
and
isinstance
(
files
[
-
1
],
io
.
IOBase
):
out
,
files
=
files
[
-
1
],
files
[:
-
1
]
else
:
out
=
sys
.
stdout
if
len
(
files
)
==
1
and
not
isinstance
(
files
[
0
],
str
):
files
=
files
[
0
]
for
f
in
files
:
if
isinstance
(
f
,
str
):
if
f
==
'-'
:
sts
=
printsumfp
(
sys
.
stdin
,
'<stdin>'
,
out
)
or
sts
else
:
sts
=
printsum
(
f
,
out
)
or
sts
else
:
sts
=
sum
(
f
,
out
)
or
sts
return
sts
def
printsum
(
filename
,
out
=
sys
.
stdout
):
try
:
fp
=
open
(
filename
,
rmode
)
except
IOError
as
msg
:
sys
.
stderr
.
write
(
'%s: Can
\'
t open: %s
\n
'
%
(
filename
,
msg
))
return
1
if
fnfilter
:
filename
=
fnfilter
(
filename
)
sts
=
printsumfp
(
fp
,
filename
,
out
)
fp
.
close
()
return
sts
def
printsumfp
(
fp
,
filename
,
out
=
sys
.
stdout
):
m
=
md5
()
try
:
while
1
:
data
=
fp
.
read
(
bufsize
)
if
not
data
:
break
if
isinstance
(
data
,
str
):
data
=
data
.
encode
(
fp
.
encoding
)
m
.
update
(
data
)
except
IOError
as
msg
:
sys
.
stderr
.
write
(
'%s: I/O error: %s
\n
'
%
(
filename
,
msg
))
return
1
out
.
write
(
'%s %s
\n
'
%
(
m
.
hexdigest
(),
filename
))
return
0
def
main
(
args
=
sys
.
argv
[
1
:],
out
=
sys
.
stdout
):
global
fnfilter
,
rmode
,
bufsize
try
:
opts
,
args
=
getopt
.
getopt
(
args
,
'blts:'
)
except
getopt
.
error
as
msg
:
sys
.
stderr
.
write
(
'%s: %s
\n
%s'
%
(
sys
.
argv
[
0
],
msg
,
usage
))
return
2
for
o
,
a
in
opts
:
if
o
==
'-l'
:
fnfilter
=
os
.
path
.
basename
elif
o
==
'-b'
:
rmode
=
'rb'
elif
o
==
'-t'
:
rmode
=
'r'
elif
o
==
'-s'
:
bufsize
=
int
(
a
)
if
not
args
:
args
=
[
'-'
]
return
sum
(
args
,
out
)
if
__name__
==
'__main__'
or
__name__
==
sys
.
argv
[
0
]:
sys
.
exit
(
main
(
sys
.
argv
[
1
:],
sys
.
stdout
))
Back
|
FazBrowse Home
|
New Git URL