| #!/usr/bin/env python3 | |
| # Copyright 2019 Google LLC | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| """Run this script to re-generate the `all_examples.cpp` file after adding or | |
| deleting example fiddles. | |
| """ | |
| import argparse | |
| import difflib | |
| import glob | |
| import os | |
| ALL_EXAMPLES = 'all_examples.cpp' | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument( | |
| '--print-diff', | |
| action='store_true', | |
| help='Print the diff between the old and new `all_examples.cpp` file.', | |
| ) | |
| args = parser.parse_args() | |
| os.chdir(os.path.dirname(__file__)) | |
| with open(ALL_EXAMPLES, 'r') as o: | |
| prev_lines = o.readlines() | |
| with open(ALL_EXAMPLES, 'w+') as o: | |
| o.write( | |
| '// Copyright 2019 Google LLC\n// Use of this source code is ' | |
| 'governed by a BSD-style license that can be found in the ' | |
| 'LICENSE file.\n' | |
| ) | |
| for path in sorted(glob.glob('../../docs/examples/*.cpp')): | |
| # strip ../../ | |
| path = path[6:] | |
| o.write('#include "%s"\n' % path) | |
| if args.print_diff: | |
| with open(ALL_EXAMPLES, 'r') as o: | |
| diff = difflib.unified_diff(prev_lines, o.readlines()) | |
| print(''.join(diff)) |