blob: 83e7632f34ac01d14e10977446fc837e3d432730 [file] [log] [blame]
Eric Fiselier1591b372017-01-03 03:55:29 +00001#!/usr/bin/env python
2#===----------------------------------------------------------------------===##
3#
4# The LLVM Compiler Infrastructure
5#
6# This file is dual licensed under the MIT and the University of Illinois Open
7# Source Licenses. See LICENSE.TXT for details.
8#
9#===----------------------------------------------------------------------===##
10
11from argparse import ArgumentParser
12import sys
13
14def print_and_exit(msg):
15 sys.stderr.write(msg + '\n')
16 sys.exit(1)
17
18def main():
19 parser = ArgumentParser(
20 description="Concatenate two files into a single file")
21 parser.add_argument(
22 '-o', '--output', dest='output', required=True,
23 help='The output file. stdout is used if not given',
24 type=str, action='store')
25 parser.add_argument(
26 'files', metavar='files', nargs='+',
27 help='The files to concatenate')
28
29 args = parser.parse_args()
30
31 if len(args.files) < 2:
32 print_and_exit('fewer than 2 inputs provided')
33 data = ''
34 for filename in args.files:
35 with open(filename, 'r') as f:
36 data += f.read()
37 if len(data) != 0 and data[-1] != '\n':
38 data += '\n'
39 assert len(data) > 0 and "cannot cat empty files"
40 with open(args.output, 'w') as f:
41 f.write(data)
42
43
44if __name__ == '__main__':
45 main()
46 sys.exit(0)