#! /usr/bin/env python
# ----------------------------------------------------------------------
# Settings
vardir = "."
date_format = "%d-%b-%Y"
# ----------------------------------------------------------------------
# functions
def usage():
print("""Usage: gen.py file.in [...]
Substitute placeholders in input files with content
""")
def gen_html(file):
"""Replace variables in the file with their content"""
text = open(file).read()
for var in vars:
vartext = open(vardir + "/" + var).read()
text = text.replace(var, vartext)
text = last_modified(text)
return text
def last_modified(text):
"""Substitute variable __last_modified__ with the current date"""
date = time.strftime(date_format, time.localtime())
text = text.replace("__last_modified__", date)
return text
# ----------------------------------------------------------------------
# main
import sys
import os
import re
import time
# Check command line arguments
if len(sys.argv) == 1:
usage()
sys.exit()
# The input files from the command line
input = sys.argv[1:]
# Get a list of all variables (files in the form __*__) from vardir
vars = os.listdir(vardir)
for i in range(len(vars)-1, -1, -1):
if re.match("^__.*__$", vars[i]): continue
del vars[i]
vars.sort()
# Substitute variables in all input files
print("Substituting variables {0}".format(vars))
for file in input:
print("Processing {0}...".format(file))
text = gen_html(file)
file = file.replace(".in", "")
open(file, 'w').write(text)