# # # 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()