From c3f92adf6be41263eb466e074e4136d29b50b59a Mon Sep 17 00:00:00 2001 From: Chris Luke Date: Wed, 5 Oct 2016 15:45:19 -0400 Subject: Add support for using documentation siphons in multiple ways Experiental support for generating multiple output formats from the same siphoned data. Adds a contrived example to generate a plain list of all CLI commands (the "itemlist" format). Eventually we can consider moving the tempate procesisng into the Output class as well as a way to override how the data is traversed (ordered). Change-Id: I77629a74a8fa0c7e583993469dc50491f72f13e7 Signed-off-by: Chris Luke --- doxygen/siphon_templates/clicmd/index_entry.md | 17 ---- doxygen/siphon_templates/clicmd/index_header.md | 130 ------------------------ doxygen/siphon_templates/clicmd/item_format.md | 59 ----------- 3 files changed, 206 deletions(-) delete mode 100644 doxygen/siphon_templates/clicmd/index_entry.md delete mode 100644 doxygen/siphon_templates/clicmd/index_header.md delete mode 100644 doxygen/siphon_templates/clicmd/item_format.md (limited to 'doxygen/siphon_templates/clicmd') diff --git a/doxygen/siphon_templates/clicmd/index_entry.md b/doxygen/siphon_templates/clicmd/index_entry.md deleted file mode 100644 index 1fa9ec9b25a..00000000000 --- a/doxygen/siphon_templates/clicmd/index_entry.md +++ /dev/null @@ -1,17 +0,0 @@ -{# -# Copyright (c) 2016 Comcast Cable Communications Management, LLC. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#} -{% set v = item['value'] %} -{{ "* [%s](@ref %s)" % (v['path'], meta["label"]) }} diff --git a/doxygen/siphon_templates/clicmd/index_header.md b/doxygen/siphon_templates/clicmd/index_header.md deleted file mode 100644 index 4167f4dc477..00000000000 --- a/doxygen/siphon_templates/clicmd/index_header.md +++ /dev/null @@ -1,130 +0,0 @@ -{# -# Copyright (c) 2016 Comcast Cable Communications Management, LLC. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#} -# Debug CLI {{'{#'}}clicmd} - -The VPP network stack comes equipped with a set of commands that are useful -for debugging. - -The easiest way to access the CLI (with proper permissions) is to use the -vppctl command: - -``` -sudo vppctl -``` - -The CLI parser matches static keyword strings, eventually invoking an action -function. Unambiguous partial keyword matching always occurs. The action -functions consume input until satisfied or until they fail. This model makes -for easy coding, but does not guarantee useful "help" output. It's up to the -CLI command writer to add useful help strings. - -You can find the source code of CLI commands by searching for instances of the -@c VLIB_CLI_COMMAND macro in the code source files. - -Please help maintain and improve this document to make and keep these commands -clear and useful! - -@todo Document where to modify this CLI intro text. - - -## Debug and Telnet CLI - -The debug CLI is enabled with the unix interactive parameter or startup -configuration option. This causes VPP to start without daemonizing and -presents a command line interface on the terminal where it is run. - -The Telnet CLI is enabled with the `cli-listen localhost:5002` option which -will cause VPP to listen for TCP connections on the localhost address port -@c 5002. A Telnet client can then connect to this port (for example, `telnet -localhost 5002`) and will receive a command line prompt. - -This configuration will enable both mechanisms: - -``` -unix { - interactive - cli-listen localhost:5002 -} -``` - -The debug CLI can operate in line mode, which may be useful when running -inside an IDE like Emacs. This is enabled with the option -`unix cli-line-mode`. Several other options exist that alter how this -CLI works, see the @ref syscfg section for details. - -The CLI starts with a banner graphic (which can be disabled) and a prompt. The -prompt will typically read `vpp` for a release version of VPP and `DBGvpp#` -for a development version with debugging enabled, for example: - - _______ _ _ _____ ___ - __/ __/ _ \ (_)__ | | / / _ \/ _ \ - _/ _// // / / / _ \ | |/ / ___/ ___/ - /_/ /____(_)_/\___/ |___/_/ /_/ - - vpp# - -versus: - - _______ _ _ _____ ___ - __/ __/ _ \ (_)__ | | / / _ \/ _ \ - _/ _// // / / / _ \ | |/ / ___/ ___/ - /_/ /____(_)_/\___/ |___/_/ /_/ - - DBGvpp# - -This prompt can be configured with the `unix cli-prompt` setting and the -banner is disabled with `unix cli-no-banner`. - -## CLI features - -The CLI has several editing features that make it easy to use. - -- Cursor keys left/right will move the cursor within a command line; - typing will insert at the cursor; erase will erase at the cursor. - -- Ctrl-left/right will search for the start of the next word to - the left or right. -- Home/end will jump the cursor to the start and end of the line. -- Cursor keys up/down and ^P/^N iterate through the command history - buffer. Lines from the history buffer may be edited. New commands - are added to the end of the buffer when executed; though - duplicates of the previous command are not added. -- ^U erases the line contents from the left of the cursor to the - start. -- ^K erases the contents from the cursor to the end. -- ^S/^R will search the command history forwards or in reverse for - a command; start typing for matches to auto complete. -- ^L will clear the screen (if supported by the terminal) and repaint - the prompt and any current line. The cursor position is also - retained. -- The CLI can be closed with the quit command. Alternatively, ^D on - an empty input line will also close the session. Closing the debug - session will also shutdown VPP. - -Output that exceeds the length of a terminal page will be buffered, up to a -limit. - -- Space or page-down displays the next page. -- Enter or down-arrow displays the next line. -- Page-up goes back a page. -- Up-arrow goes up a line. -- Home/end jump to the start/end of the buffered output. -- The key q quits the pager. Space and enter will also quit the - pager if the end of the buffer has been reached. - -## Index of CLI commands - -[TOC] diff --git a/doxygen/siphon_templates/clicmd/item_format.md b/doxygen/siphon_templates/clicmd/item_format.md deleted file mode 100644 index 288dae40f24..00000000000 --- a/doxygen/siphon_templates/clicmd/item_format.md +++ /dev/null @@ -1,59 +0,0 @@ -{# -# Copyright (c) 2016 Comcast Cable Communications Management, LLC. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at: -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#} -{% set v = item['value'] %} -{{ "@section %s %s" % (meta['label'], v['path']) }} -{% if 'short_help' in v %} - -### Summary/usage - -{% set str = v['short_help'] %} -{% set period = "." if str[-1] != "." else "" %} -{% set prefix = " " if "[" in str or "<" in str or "|" in str else "" %} -{% set str = this.unescape(str) %} -{{ "%s%s%s" % (prefix, str, period) }} -{% endif %} -{% if 'long_help' in v %} -{# This is seldom used and will likely be deprecated #} - -### Long help - -{{ v['long_help'] }} -{% endif %} -{% if 'siphon_block' in item['meta'] %} -{% set sb = item["meta"]["siphon_block"] %} -{% if sb %} -{# Extracted from the code in /*? ... ?*/ blocks #} - -### Description - -{{ sb }} -{% endif %} -{% endif %} -{% if 'name' in meta or 'function' in v %} -{# Gives some developer-useful linking #} - -### Declaration and implementation -{% if "name" in meta %} - -{{ "Declaration: @ref %s (@ref %s line %d)" % - (meta['name'], meta["file"], item["meta"]["line_start"]) }} -{% endif %} -{% if "function" in v %} - -{{ "Implementation: @ref %s." % v["function"] }} -{% endif %} -{% endif %} - -- cgit 1.2.3-korg