Skip to content

Commit 7d93585

Browse files
committed
File Subsitution with -fileinclude
1 parent 54e81f5 commit 7d93585

File tree

1 file changed

+25
-7
lines changed

1 file changed

+25
-7
lines changed

coverpy.py

+25-7
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,17 @@ def write_cl(string, output_file):
6161
if __name__ == "__main__":
6262
# Arg Parsing
6363
parser = argparse.ArgumentParser()
64+
# File in
6465
parser.add_argument("-file", nargs='?', required=True)
66+
# Boolean if the file is a tex file
6567
parser.add_argument("-tex", nargs='?', default=False, required=False)
68+
# Replace with other file
69+
parser.add_argument("-fileinclude", nargs='?', default=False, required=False)
6670
args = parser.parse_known_args()[0]
6771

6872
# Read in template file
6973
tex = args.tex
74+
fileinclude = args.fileinclude
7075
filename = args.file
7176
file = get_file(filename)
7277
if file == 1:
@@ -77,17 +82,32 @@ def write_cl(string, output_file):
7782

7883
# Find all template entries
7984
entries = re.findall("{{(.*?)}}", file)
85+
86+
# For each placeholder
8087
for entry in entries:
88+
# Check for a set argument
8189
parser.add_argument("-%s" % entry, nargs='?', default="UNSET")
8290
args = vars(parser.parse_known_args()[0])
83-
if args[entry] == "UNSET" or args[entry] == None:
84-
file = file.sub("{{%s}}" % entry, input(info("Enter value for '%s': " % entry)))
85-
else:
86-
file = file.sub("{{%s}}" % entry, args[entry])
8791

92+
if fileinclude:
93+
# When file include is enabled check for a file with the placeholder name
94+
fileincludename = "./includes/{}".format(entry)
95+
substitute = get_file(fileincludename)
96+
97+
while substitute == 1:
98+
fileincludename = input(info("'%s' could not be found. Enter an alternative file and path from %s: " % (entry, os.getcwd())))
99+
substitute = get_file(fileincludename)
100+
101+
file = file.sub("{{%s}}" % entry, substitute)
102+
103+
else:
104+
if args[entry] == "UNSET" or args[entry] == None:
105+
file = file.sub("{{%s}}" % entry, input(info("Enter value for '%s': " % entry)))
106+
else:
107+
file = file.sub("{{%s}}" % entry, args[entry])
88108

89109
# Write output
90-
if "." in filename :
110+
if "." in filename:
91111
filename = filename.split(".")[0]
92112
parser.add_argument("-outfile", nargs='?', default="%s_out" % filename)
93113
write_cl(file, parser.parse_known_args()[0].outfile)
@@ -100,7 +120,5 @@ def write_cl(string, output_file):
100120
print(success("\nFinished writing cover letter.\n"))
101121
print(file)
102122

103-
104-
105123
# All done
106124
exit(0)

0 commit comments

Comments
 (0)