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