An assortment of scripts and programs that pulls in info from our repositories and puts out a website.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.4 KiB
46 lines
1.4 KiB
#! /usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
This file is called by generate.bash and will put out part of our website.
|
|
It pulls the info directly from the projects metada dict. Therefore we need this to be a python
|
|
script.
|
|
|
|
The projects themselves are oblivious to any html website format and style. We can change the website
|
|
at any time as long as the data structures stay the same.
|
|
|
|
Output is to stdout, we rely on bash piping in generate.bash to write a file.
|
|
|
|
We expect a directory "temp" on our level with each project as lowercase name:
|
|
temp/fluajho
|
|
temp/patroneo
|
|
etc.
|
|
|
|
The image file is a static file. At this point in time manually copied into the static/ dir
|
|
|
|
"""
|
|
|
|
import sys
|
|
import datetime
|
|
today_str = str(datetime.date.today())
|
|
|
|
projects = sys.argv[1:] #exclude our own filename
|
|
assert projects
|
|
|
|
|
|
oneliners = ""
|
|
for project in projects:
|
|
config = __import__(f"temp.{project}.engine.config", fromlist=["METADATA"])
|
|
META = config.METADATA
|
|
assert META["shortName"] == project, (META["shortName"], project)
|
|
oneliners = oneliners + f"\n<li><a href=\"/{META['shortName']}/\">{META['name']}</a>: {META['tagline']}</li>"
|
|
|
|
|
|
with open("directcontent/index", "r") as f:
|
|
template = f.read()
|
|
template = template.replace("PYREPLACE_ONELINERS", oneliners)
|
|
template = template.replace("PYREPLACE_DATE", today_str)
|
|
|
|
|
|
print (template) #stdout. our job is done
|
|
|
|
|