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