#!/usr/bin/env python
from jtutils import fix_broken_pipe
import argparse
import pandas as pd
import csv
import sys

def readCL():
   parser = argparse.ArgumentParser()
   parser.add_argument("files",nargs="*")
   parser.add_argument("-d","--delimiter",default=",",nargs="*")
   args = parser.parse_args()
   return args.files, args.delimiter

if __name__ == "__main__":
   fix_broken_pipe()
   files, delimiter = readCL()
   hdr = None #header of the first file
   for f in files:
     if sys.version_info[0] >= 3:
         f_in = open(f,errors='ignore') #don't crash on invalid unicode
     else:
         f_in = open(f)
     reader = csv.reader(f_in, delimiter=delimiter)
     file_hdr = None #header of the file
     for row in reader:
        if hdr and not file_hdr: #this is the header line of a file (but not the first file)
           if row != hdr:
              raise Exception("Mismatched headers: " + str(hdr) + " vs " + str(row))
           if not file_hdr:
              file_hdr = row
           continue
        if not file_hdr:
           file_hdr = row
        if not hdr:
           hdr = file_hdr

        csv.writer(sys.stdout, lineterminator= '\n').writerows([row])
