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