blob: 2193a2271f7819ca7ead84d35bc18b7924c9bf56 [file] [log] [blame]
#!/usr/bin/env python3.8
# Copyright 2019 The Fuchsia 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 argparse
import filecmp
import json
import sys
# Verifies that the current golden file matches the provided golden.
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'--golden', help='Path to the golden file', required=True)
parser.add_argument(
'--current', help='Path to the local file', required=True)
parser.add_argument(
'--stamp', help='Path to the victory file', required=True)
parser.add_argument(
'--warn',
help='Whether API changes should only cause warnings',
action='store_true')
args = parser.parse_args()
if args.golden:
if not filecmp.cmp(args.golden, args.current):
type = 'Warning' if args.warn else 'Error'
print('%s: Golden file mismatch' % type)
print('Please acknowledge this change by running:')
print(' cp ' + args.current + ' ' + args.golden)
if not args.warn:
return 1
with open(args.stamp, 'w') as stamp_file:
stamp_file.write('Golden!\n')
return 0
if __name__ == '__main__':
sys.exit(main())