diff options
Diffstat (limited to 'docs/_ext')
-rw-r--r-- | docs/_ext/vyos.py | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/docs/_ext/vyos.py b/docs/_ext/vyos.py index 6832167f..fbdfefab 100644 --- a/docs/_ext/vyos.py +++ b/docs/_ext/vyos.py @@ -437,20 +437,45 @@ class CfgCmdDirective(CmdDirective): def strip_cmd(cmd, debug=False): + + # find all [...] and also nested [...] + # regex and str.find() had problems with nested [...] + appearance = 0 + cmd_new = "" + for c in cmd: + if c == "[": + appearance = appearance + 1 + if appearance == 0: + cmd_new = f"{cmd_new}{c}" + if c == "]": + appearance = appearance - 1 + + # only if all [..] will be delete if appearance > 0 there is a syntax errror + if appearance == 0: + cmd = cmd_new + + # same for <...> + appearance = 0 + cmd_new = "" + for c in cmd: + if c == "<": + appearance = appearance + 1 + if appearance == 0: + cmd_new = f"{cmd_new}{c}" + if c == ">": + appearance = appearance - 1 + + # only if all <..> will be delete if appearance > 0 there is a syntax errror + if appearance == 0: + cmd = cmd_new + if debug: print("") print(cmd) - cmd = re.sub('set','',cmd) + cmd = re.sub('^set','',cmd) if debug: print(cmd) - #while " | " in cmd: - cmd = re.sub('\s+\|\s+','',cmd) - if debug: - print(cmd) - cmd = re.sub('<\S*>','',cmd) - if debug: - print(cmd) - cmd = re.sub('\[\S\]','',cmd) + cmd = cmd.replace('|','') if debug: print(cmd) cmd = re.sub('\s+','',cmd) @@ -502,9 +527,6 @@ def process_coverage(app, fromdocname, doccmd, xmlcmd, cli_type): coverage_list[strip_cmd(cmd['cmd'])] = dict(coverage_item) - - #print(coverage_list.keys()) - for cmd in xmlcmd: strip = strip_cmd(cmd['cmd']) @@ -668,5 +690,3 @@ def handle_document_meta_data(app, document): else: pass #logger.warning(f'lastproofread meta data missing in {app.env.doc2path(docname)}') - - |