mirror of
https://github.com/opentx/opentx.git
synced 2025-07-19 22:35:12 +03:00
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
53 lines
1.4 KiB
Python
Executable file
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()
|