import sys, os, rpm def get_rpm_info(rpm_file): """Returns rpm information by querying a rpm""" ts = rpm.ts() fdno = os.open(rpm_file, os.O_RDONLY) try: hdr = ts.hdrFromFdno(fdno) except rpm.error: fdno = os.open(rpm_file, os.O_RDONLY) ts.setVSFlags(rpm._RPMVSF_NOSIGNATURES) hdr = ts.hdrFromFdno(fdno) os.close(fdno) return { 'name': hdr[rpm.RPMTAG_NAME], 'ver' : "%s-%s" % (hdr[rpm.RPMTAG_VERSION],\ hdr[rpm.RPMTAG_RELEASE]), 'epoch': hdr[rpm.RPMTAG_EPOCH],\ 'arch': hdr[rpm.RPMTAG_ARCH] } if __name__ == '__main__': blob = sys.argv[1] rpm_info = get_rpm_info(blob) for key in rpm_info: print '%s:%s' % (key.ljust(11), rpm_info[key])