22
20
return hash.hexdigest()
25
ap = argparse.ArgumentParser()
26
ap.add_argument("root")
27
args = ap.parse_args()
31
# A list of command strings.
34
for dir, dirs, files in os.walk(root):
36
for fn in dirs + files:
38
path = os.path.join(dir, fn)
39
relpath = os.path.relpath(path, root)
41
if relpath in [ "version", "catalog1.bz2" ]:
44
if os.path.isdir(path):
45
commands.append(('dir', "base", relpath))
47
elif relpath.endswith(".bz2"):
49
hash = sha(bz2.BZ2File(path, "r").read())
50
size = "%d" % (os.path.getsize(path))
52
commands.append(('file', hash, size, "base", relpath[:-4]))
54
if os.access(path, os.X_OK):
55
commands.append(('xbit', relpath[:-4]))
58
print "Unknown non-directory, non-bz2-file:", path
60
out = bz2.BZ2File(os.path.join(root, "catalog1.bz2"), "w")
61
hash = hashlib.sha256()
65
line = "\t".join(i) + "\n"
69
unsigned = int("01" + hash.hexdigest(), 16)
70
signed = pow(unsigned, private.exponent, public.modulus)
73
out.write("signature\t%x\n" % signed)
77
f = file(os.path.join(root, "version"), "w")
78
f.write(str(int(time.time())))
80
f.write("Test Update.")
23
def make_update(root, version):
25
# A list of command strings.
28
for dir, dirs, files in os.walk(root):
30
fn = os.path.join(dir, fn)
33
bzf = bz2.BZ2File(fn + ".bz2", "wb")
34
bzf.write(oldf.read())
38
shutil.copymode(fn, fn + ".bz2")
41
for dir, dirs, files in os.walk(root):
43
for fn in dirs + files:
45
path = os.path.join(dir, fn)
46
relpath = os.path.relpath(path, root)
48
if relpath in [ "version", "catalog1.bz2" ]:
51
if os.path.isdir(path):
52
commands.append(('dir', "base", relpath))
54
elif relpath.endswith(".bz2"):
56
hash = sha(bz2.BZ2File(path, "r").read())
57
size = "%d" % (os.path.getsize(path))
59
commands.append(('file', hash, size, "base", relpath[:-4]))
61
if os.access(path, os.X_OK):
62
commands.append(('xbit', relpath[:-4]))
65
out = bz2.BZ2File(os.path.join(root, "catalog1.bz2"), "w")
66
hash = hashlib.sha256()
70
line = "\t".join(i) + "\n"
74
unsigned = int("01" + hash.hexdigest(), 16)
75
signed = pow(unsigned, private.exponent, public.modulus)
78
out.write("signature\t%x\n" % signed)
81
f = file(os.path.join(root, "version"), "w")