dbfp_pub/dbfp.py

57 lines
1.3 KiB
Python

#
#
#
import argparse
import time
from libs import fingerprint
from libs import toolbox
def main():
(filein, fileout, filejson, verbose) = parseArgs()
db = fingerprint.DBSchema()
if (filein and filejson):
db.scanDBFile(filein)
db.compareDB(filejson)
elif (filein):
retVal = db.scanDBFile(filein)
if (retVal > 0):
fh = open(fileout, "w")
db.debugFingerprint()
db.writeFingerprint(fh)
fh.close()
else:
print db.getErrorString(retVal)
elif (filejson):
db.importJson(filejson)
db.debugFingerprint()
def parseArgs():
print '***** ***** ***** *****'
print ' DB Fingerprint'
print '***** ***** ***** *****\n'
fileout = ''
timestr = time.strftime('%Y-%m-%d_%H%M%S', time.localtime(time.time()))
parser = argparse.ArgumentParser(description='Fingerprint a sqlite database based on its schema')
parser.add_argument('-f', '--file', required=False)
parser.add_argument('-j', '--json', required=False)
parser.add_argument('-v', '--verbose', action='store_true')
args = parser.parse_args()
if (args.file is None) and (args.json is None):
parser.print_help()
exit()
if (args.file):
filename = toolbox.ToolBox.parseFilename(args.file)
fileout = filename + "_" + timestr + '.json'
return (args.file, fileout, args.json, args.verbose)
if __name__ == "__main__":
main()