mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 12:56:30 +01:00
136 lines
3 KiB
Python
136 lines
3 KiB
Python
"""
|
|
Update dynamically generated doc pages based on github sources.
|
|
|
|
"""
|
|
|
|
from datetime import datetime
|
|
from os.path import abspath, dirname
|
|
from os.path import join as pathjoin
|
|
from re import sub as re_sub
|
|
|
|
ROOTDIR = dirname(dirname(dirname(abspath(__file__))))
|
|
DOCDIR = pathjoin(ROOTDIR, "docs")
|
|
DOCSRCDIR = pathjoin(DOCDIR, "source")
|
|
EVENNIADIR = pathjoin(ROOTDIR, "evennia")
|
|
|
|
|
|
def update_code_style():
|
|
"""
|
|
Plain CODING_STYLE.md copy
|
|
|
|
"""
|
|
sourcefile = pathjoin(ROOTDIR, "CODING_STYLE.md")
|
|
targetfile = pathjoin(DOCSRCDIR, "Coding", "Evennia-Code-Style.md")
|
|
|
|
with open(sourcefile) as fil:
|
|
txt = fil.read()
|
|
|
|
with open(targetfile, "w") as fil:
|
|
fil.write(txt)
|
|
|
|
print(" -- Updated Evennia-Code-Style.md")
|
|
|
|
|
|
def update_changelog():
|
|
"""
|
|
Plain CHANGELOG.md copy
|
|
|
|
"""
|
|
|
|
sourcefile = pathjoin(ROOTDIR, "CHANGELOG.md")
|
|
targetfile = pathjoin(DOCSRCDIR, "Coding", "Changelog.md")
|
|
|
|
with open(sourcefile) as fil:
|
|
txt = fil.read()
|
|
|
|
with open(targetfile, "w") as fil:
|
|
fil.write(txt)
|
|
|
|
print(" -- Updated Changelog.md")
|
|
|
|
|
|
def update_default_settings():
|
|
"""
|
|
Make a copy of the default settings file for easy reference in docs
|
|
|
|
"""
|
|
|
|
sourcefile = pathjoin(EVENNIADIR, "settings_default.py")
|
|
targetfile = pathjoin(DOCSRCDIR, "Setup", "Settings-Default.md")
|
|
|
|
with open(sourcefile) as fil:
|
|
txt = fil.read()
|
|
|
|
txt = f"""
|
|
# Evennia Default settings file
|
|
|
|
Master file is located at `evennia/evennia/settings_default.py`. Read
|
|
its comments to see what each setting does and copy only what you want
|
|
to change into `mygame/server/conf/settings.py`.
|
|
|
|
Example of accessing settings:
|
|
|
|
```
|
|
from django.conf import settings
|
|
|
|
if settings.SERVERNAME == "Evennia":
|
|
print("Yay!")
|
|
```
|
|
|
|
----
|
|
|
|
```python
|
|
{txt}
|
|
```
|
|
"""
|
|
with open(targetfile, "w") as fil:
|
|
fil.write(txt)
|
|
|
|
print(" -- Updated Settings-Default.md")
|
|
|
|
def update_index():
|
|
"""
|
|
Read the index.md file and inject the latest version number and updated time.
|
|
|
|
"""
|
|
indexfile = pathjoin(DOCSRCDIR, "index.md")
|
|
versionfile = pathjoin(EVENNIADIR, "VERSION.txt")
|
|
|
|
with open(indexfile) as f:
|
|
srcdata = f.read()
|
|
|
|
# replace the version number
|
|
with open(versionfile) as f:
|
|
version = f.read().strip()
|
|
|
|
pattern = r"Evennia version is \d+\.\d+\.\d+\."
|
|
replacement = f"Evennia version is {version}."
|
|
|
|
srcdata = re_sub(pattern, replacement, srcdata)
|
|
|
|
# replace the last-updated time
|
|
now = datetime.now().strftime("%B %d, %Y")
|
|
|
|
pattern = r"This manual was last updated [A-Z][a-z]+ \d{1,2}, \d{4}"
|
|
replacement = f"This manual was last updated {now}"
|
|
|
|
srcdata = re_sub(pattern, replacement, srcdata)
|
|
|
|
with open(indexfile, "w") as f:
|
|
f.write(srcdata)
|
|
|
|
print(" -- Updated index.md")
|
|
|
|
def update_dynamic_pages():
|
|
"""
|
|
Run the various updaters
|
|
|
|
"""
|
|
update_index()
|
|
update_changelog()
|
|
update_default_settings()
|
|
update_code_style()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
update_dynamic_pages()
|