darling/tools/rename-line
2018-06-03 15:10:43 -04:00

41 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python3
import argparse
import os
import re
parser = argparse.ArgumentParser(description="Renames the starts of lines in every file")
parser.add_argument("old", help="old start of line", type=str)
parser.add_argument("new", help="new start of line", type=str)
args = parser.parse_args()
lineCount = 0
fileCount = 0
def editfile(f, old, new):
global lineCount, fileCount
contents = f.readlines()
newContents = ""
f.seek(0)
edited = False
for line in contents:
if line.startswith(old):
edited = True
lineCount += 1
line = new + line[len(old):]
newContents += line
if edited:
fileCount += 1
f.write(newContents)
f.truncate()
for dirpath, dirname, filenames in os.walk("."):
for filename in filenames:
if filename.endswith("CMakeLists.txt"):
with open(dirpath +"/" + filename, "r+") as f:
editfile(f, args.old, args.new)
print("Edited " + str(lineCount) + " lines in " + str(fileCount) + " files.")