From 1dac2263372df2b85db5d029a45721fa158a5c9d Mon Sep 17 00:00:00 2001 From: xiubuzhe Date: Sun, 8 Oct 2023 20:59:00 +0800 Subject: first add files --- sbin/calcrollmd5 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100755 sbin/calcrollmd5 (limited to 'sbin/calcrollmd5') diff --git a/sbin/calcrollmd5 b/sbin/calcrollmd5 new file mode 100755 index 0000000..d6bcfe1 --- /dev/null +++ b/sbin/calcrollmd5 @@ -0,0 +1,49 @@ +#!/usr/bin/python +#coding:utf-8 + +import os +import sys +import hashlib + +def GetFileMD5(filename): + myhash = hashlib.md5() + with open(filename, 'rb') as f: + while True: + b = f.read(8096) + if not b: + break + myhash.update(b) + return myhash.hexdigest() + +def running(path): + rpmlist = [] + for root, dirs,files in os.walk(path): + if root.endswith("RedHat"): + (roll, version, arch) = root.split(os.path.sep)[-4:-1] + rollname = "%s/%s/%s" % (roll, version, arch) + rollvers = "%s-%s-%s" % (roll, version, arch) + + baseDirs = os.path.join(rollname, 'RedHat', 'RPMS') + for f in os.listdir(baseDirs): + rpmname = os.path.join(baseDirs, f) + md5sum = GetFileMD5(rpmname) + result = "%s %s %s" % (md5sum, rollvers, rpmname) + rpmlist.append(result) + + return rpmlist + +if __name__ == "__main__": + args = sys.argv + if len(args) < 2: + print " - Must to be supply an path." + sys.exit(0) + + path = args[1] + if os.path.isdir(path) and path != '/': + path = os.path.abspath(path) + rpmlist = running(path) + + rfile = os.path.join(path, 'rollslist') + with open(rfile, 'w') as f: + f.write('\n'.join(rpmlist)) + f.write('\n') -- cgit v1.2.3