cookbook/container: example of building+running docker containers.
This got... long... and complicated. But I think it's a really good demonstration of getting redo to do complicated things elegantly. At least, I hope it is.
This commit is contained in:
parent
01497f55e9
commit
3923a7d3f8
38 changed files with 1375 additions and 7 deletions
21
docs/cookbook/container/fileids.py
Executable file
21
docs/cookbook/container/fileids.py
Executable file
|
|
@ -0,0 +1,21 @@
|
|||
#!/usr/bin/env python
|
||||
import hashlib, os, stat, sys
|
||||
|
||||
for name in sys.stdin:
|
||||
name = name[:-1] # skip terminating newline
|
||||
st = os.lstat(name)
|
||||
if stat.S_ISREG(st.st_mode):
|
||||
h = hashlib.sha256()
|
||||
f = open(name)
|
||||
while 1:
|
||||
b = f.read(65536)
|
||||
if not b: break
|
||||
h.update(b)
|
||||
digest = h.hexdigest()
|
||||
elif stat.S_ISLNK(st.st_mode):
|
||||
digest = hashlib.sha256(os.readlink(name)).hexdigest()
|
||||
else:
|
||||
digest = '0'
|
||||
print('%s %07o-%s-%s-%s' % (
|
||||
name,
|
||||
st.st_mode, st.st_uid, st.st_gid, digest))
|
||||
Loading…
Add table
Add a link
Reference in a new issue