#!/usr/bin/env python3 # -*- coding: utf-8 -*- # # Copyright (C) 2017-2020 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at # https://opensource.org/licenses/ISC # # SPDX-License-Identifier: ISC 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()