| #!/usr/bin/env python |
| # Copyright 2017 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import sys |
| |
| import package_version_interval |
| |
| if len(sys.argv) < 3: |
| print ('Usage: %s output_deps_file input1_deps_file input2_deps_file ...' % |
| sys.argv[0]) |
| sys.exit(1) |
| |
| output_filename = sys.argv[1] |
| input_filenames = sys.argv[2:] |
| |
| package_interval_sets = [] |
| for input_filename in input_filenames: |
| for line in open(input_filename): |
| # Ignore blank lines |
| if not line.strip(): |
| continue |
| # Allow comments starting with '#' |
| if line.startswith('#'): |
| continue |
| line = line.rstrip('\n') |
| interval_set = package_version_interval.parse_interval_set(line) |
| should_append_interval_set = True |
| for i in range(len(package_interval_sets)): |
| if package_interval_sets[i].implies(interval_set): |
| should_append_interval_set = False |
| break |
| if interval_set.implies(package_interval_sets[i]): |
| should_append_interval_set = False |
| package_interval_sets[i] = interval_set |
| break |
| if should_append_interval_set: |
| package_interval_sets.append(interval_set) |
| |
| with open(output_filename, 'w') as output_file: |
| lines = [interval_set.formatted() + '\n' |
| for interval_set in package_interval_sets] |
| output_file.write(''.join(sorted(lines))) |