#!/usr/bin/env python from __future__ import print_function import sys def writeheader(filename, header): """ write a header to filename, skip files where first line after optional shebang matches the skip regex filename should be the name of the file to write to header should be a list of strings skip should be a regex """ f = open(filename,"r") inpt =f.readlines() f.close() output = [] # comment out the next 3 lines if you don't wish to preserve shebangs if len(inpt) > 0 and inpt[0].startswith("#!"): output.append(inpt[0]) inpt = inpt[1:] if inpt[0].strip().startswith("/*"): for i, line in enumerate(inpt): if line.strip().endswith("*/"): inpt = inpt[i + 1:] break while not inpt[0].strip(): inpt = inpt[1:] output.extend(header) # add the header for line in inpt: output.append(line) try: f = open(filename,'w') f.writelines(output) f.close() print("added header to %s" % filename) except IOError as err: print("something went wrong trying to add header to %s: %s" % (filename, err)) def main(args=sys.argv): headerfile = open(args[1]) header = headerfile.readlines() headerfile.close() writeheader(args[2], header) if __name__ == '__main__': # call the main method main()