46 lines
923 B
Python
Executable File
46 lines
923 B
Python
Executable File
#!/usr/bin/env python
|
|
|
|
from __future__ import print_function
|
|
|
|
import glob
|
|
import logging
|
|
import os
|
|
import sys
|
|
|
|
from pydpkg import Dpkg
|
|
|
|
logging.basicConfig()
|
|
log = logging.getLogger('dpkg_extract')
|
|
log.setLevel(logging.INFO)
|
|
|
|
PRETTY = """Filename: {0}
|
|
Size: {1}
|
|
MD5: {2}
|
|
SHA1: {3}
|
|
SHA256: {4}
|
|
Headers:
|
|
{5}"""
|
|
|
|
|
|
def indent(input_str, prefix):
|
|
return '\n'.join(
|
|
['%s%s' % (prefix, x) for x in input_str.split('\n')]
|
|
)
|
|
|
|
try:
|
|
filenames = sys.argv[1:]
|
|
except KeyError:
|
|
log.fatal('You must list at least one deb file as an argument')
|
|
sys.exit(1)
|
|
|
|
for files in filenames:
|
|
for fn in glob.glob(files):
|
|
if not os.path.isfile(fn):
|
|
log.warning('%s is not a file, skipping', fn)
|
|
log.debug('checking %s', fn)
|
|
dp = Dpkg(fn)
|
|
print(PRETTY.format(
|
|
fn, dp.filesize, dp.md5, dp.sha1, dp.sha256,
|
|
indent(str(dp), ' ')
|
|
))
|