Merge pull request #510 from antmicro/clean-db

utils: add cleandb tool
This commit is contained in:
Tomasz Michalak 2019-05-08 10:18:35 +02:00 committed by GitHub
commit 894a629767
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 54 additions and 0 deletions

54
utils/cleandb.py Normal file
View File

@ -0,0 +1,54 @@
#!/usr/bin/env python3
import sys, re
import os
from prjxray import util
def run(globaldb, localdb, verbose=False):
local_db_files = list()
work_db_files = list()
# get DB files
global_entries = {}
local_entries = {}
final_entries = {}
verbose and print("removing %s from %s" % (localdb, globaldb))
# parse global db
for line, (tag, bits, mode) in util.parse_db_lines(globaldb):
global_entries[tag] = bits
# parse local db
for line, (tag, bits, mode) in util.parse_db_lines(localdb):
local_entries[tag] = bits
for entry in global_entries:
if entry not in local_entries:
final_entries[entry] = global_entries[entry]
else:
verbose and print("Removing entry %s" % entry)
util.write_db_lines(globaldb, final_entries)
def main():
import argparse
parser = argparse.ArgumentParser(
description="Remove partial DB from global DB")
parser.add_argument('--verbose', action='store_true', help='')
parser.add_argument(
'--localdb', action='store', help='Path to work database')
parser.add_argument(
'--globaldb', action='store', help='Path to global database')
args = parser.parse_args()
run(args.globaldb, args.localdb, args.verbose)
if __name__ == '__main__':
main()