| #!/usr/bin/env python |
| # |
| # Copyright 2014 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. |
| |
| """ |
| Prepends a given file with a given line. This can be used to add a shebang line |
| to a generated file. |
| """ |
| |
| import optparse |
| import os |
| import shutil |
| import sys |
| |
| |
| def main(): |
| parser = optparse.OptionParser() |
| parser.add_option('--input', help='The file to prepend the line to.') |
| parser.add_option('--line', help='The line to be prepended.') |
| parser.add_option('--output', help='The output file.') |
| |
| options, _ = parser.parse_args() |
| input_path = options.input |
| output_path = options.output |
| line = options.line |
| |
| # Warning - this reads all of the input file into memory. |
| with open(output_path, 'w') as output_file: |
| output_file.write(line + '\n') |
| with open(input_path, 'r') as input_file: |
| shutil.copyfileobj(input_file, output_file) |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |