#!/usr/bin/env python #===----------------------------------------------------------------------===## # # The LLVM Compiler Infrastructure # # This file is dual licensed under the MIT and the University of Illinois Open # Source Licenses. See LICENSE.TXT for details. # #===----------------------------------------------------------------------===## from argparse import ArgumentParser import sys def print_and_exit(msg): sys.stderr.write(msg + '\n') sys.exit(1) def main(): parser = ArgumentParser( description="Concatenate two files into a single file") parser.add_argument( '-o', '--output', dest='output', required=True, help='The output file. stdout is used if not given', type=str, action='store') parser.add_argument( 'files', metavar='files', nargs='+', help='The files to concatenate') args = parser.parse_args() if len(args.files) < 2: print_and_exit('fewer than 2 inputs provided') data = '' for filename in args.files: with open(filename, 'r') as f: data += f.read() if len(data) != 0 and data[-1] != '\n': data += '\n' assert len(data) > 0 and "cannot cat empty files" with open(args.output, 'w') as f: f.write(data) if __name__ == '__main__': main() sys.exit(0)