diff options
author | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-04-10 21:26:56 +0200 |
---|---|---|
committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-04-10 21:26:56 +0200 |
commit | aef62d258b32577c3a168fc32d37d9ab5b0a318f (patch) | |
tree | b990ce1cda3fa050ffcb3c93222ad2ddf4c3af5b /doc/user/conf.py | |
parent | doc: load lexer differently (diff) | |
download | frr-aef62d258b32577c3a168fc32d37d9ab5b0a318f.tar.xz frr-aef62d258b32577c3a168fc32d37d9ab5b0a318f.zip |
doc: gracefully handle missing config.status
The docs extract various configuration values from config.status and
substitute them into placeholders throughout the docs. Add the ability
to build the docs with some reasonable defaults set instead of failing
when config.status doesn't exist.
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'doc/user/conf.py')
-rw-r--r-- | doc/user/conf.py | 44 |
1 files changed, 25 insertions, 19 deletions
diff --git a/doc/user/conf.py b/doc/user/conf.py index 24e27bb5e..886403b69 100644 --- a/doc/user/conf.py +++ b/doc/user/conf.py @@ -53,7 +53,7 @@ master_doc = 'index' # General information about the project. project = u'FRR' copyright = u'2017, FRR' -author = u'FRR' +author = u'FRR authors' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the @@ -69,34 +69,40 @@ release = u'?.?-?' # Extract values from codebase for substitution into docs. # ----------------------------------------------------------------------------- -# Various installation prefixes. Reasonable defaults are set where possible. -# Values are overridden by logic below. +# Various installation prefixes. Values are extracted from config.status. +# Reasonable defaults are set in case that file does not exist. replace_vars = { - 'AUTHORS': 'Kunihiro Ishiguro, et al.', + 'AUTHORS': author, 'COPYRIGHT_YEAR': '1999-2005', - 'COPYRIGHT_STR': None, + 'COPYRIGHT_STR': 'Copyright (c) 1999-2005', 'PACKAGE_NAME': project.lower(), 'PACKAGE_TARNAME': project.lower(), - 'PACKAGE_STRING': None, + 'PACKAGE_STRING': project.lower() + ' latest', 'PACKAGE_URL': 'https://frrouting.org/', - 'PACKAGE_VERSION': None, - 'INSTALL_PREFIX_ETC': None, - 'INSTALL_PREFIX_SBIN': None, - 'INSTALL_PREFIX_STATE': None, - 'INSTALL_PREFIX_MODULES': None, - 'INSTALL_USER': None, - 'INSTALL_GROUP': None, - 'INSTALL_VTY_GROUP': None, + 'PACKAGE_VERSION': 'latest', + 'INSTALL_PREFIX_ETC': '/etc/frr', + 'INSTALL_PREFIX_SBIN': '/usr/lib/frr', + 'INSTALL_PREFIX_STATE': '/var/run/frr', + 'INSTALL_PREFIX_MODULES': '/usr/lib/frr/modules', + 'INSTALL_USER': 'frr', + 'INSTALL_GROUP': 'frr', + 'INSTALL_VTY_GROUP': 'frrvty', + 'GROUP': 'frr', + 'USER': 'frr', } # extract version information, installation location, other stuff we need to # use when building final documents val = re.compile('^S\["([^"]+)"\]="(.*)"$') -with open('../../config.status', 'r') as cfgstatus: - for ln in cfgstatus.readlines(): - m = val.match(ln) - if not m or m.group(1) not in replace_vars.keys(): continue - replace_vars[m.group(1)] = m.group(2) +try: + with open('../../config.status', 'r') as cfgstatus: + for ln in cfgstatus.readlines(): + m = val.match(ln) + if not m or m.group(1) not in replace_vars.keys(): continue + replace_vars[m.group(1)] = m.group(2) +except IOError: + # if config.status doesn't exist, just ignore it + pass # manually fill out some of these we can't get from config.status replace_vars['COPYRIGHT_STR'] = "Copyright (c)" |