1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-19 22:35:12 +03:00
opentx/radio/util/copyright.py
Sean Vig 4bd90d79d0 Use with open(...) as ...: context managers
Instead of manually opening and closes file objects, use the context
manager that will properly handle opening and closing files for us, even
in the event of some error
2015-12-13 18:57:36 -06:00

53 lines
1.4 KiB
Python
Executable file

#!/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
"""
with open(filename, "r") as f:
inpt = f.readlines()
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:
with open(filename, 'w') as f:
f.writelines(output)
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):
with open(args[1]) as headerfile:
header = headerfile.readlines()
writeheader(args[2], header)
if __name__ == '__main__':
# call the main method
main()