LGFILE(5)
π LGFILE(5) β like, the ION Load/Go source file, bestie π
the manual page for lgfile β straight out of the BP configuration files section, iykyk β¨
πΈ NAME πΈ
lgfile β the ION Load/Go source file, fr fr π«Ά
β¨ DESCRIPTION β¨
okay so. the ION Load/Go system is the thing that lets you run ION administrative programs on remote nodes, no cap. here's the whole vibe:
- the
lgsendprogram reads a Load/Go source file from a local file system, wraps the text of that source file up in a bundle, and sends that bundle to a designated DTN endpoint on the remote node. slay π - an
lgagenttask running on the remote node β which has already opened that DTN endpoint for bundle reception β receives the extracted payload of the bundle (that's the text of the Load/Go source file, bestie) and processes it. iconic.
Load/Go source file content is limited to newline-terminated lines of ASCII characters. more specifically, the text of any Load/Go source file is a sequence of line sets of two types: file capsules and directives. any Load/Go source file may contain any number of file capsules and any number of directives, freely intermingled in any order β but the typical structure of a Load/Go source file is simply a single file capsule followed by a single directive. periodt.
Each file capsule is structured as:
- a single start-of-capsule line
- followed by zero or more capsule text lines
- followed by a single end-of-capsule line
Each start-of-capsule line is of this form:
[file_name
Each capsule text line can be any line of ASCII text that does not begin with an opening ([) or closing (]) bracket character.
A text line that begins with a closing bracket character (]) is interpreted as an end-of-capsule line.
A directive is any line of text that is not one of the lines of a file capsule and that is of this form:
!directive_text
When lgagent identifies a file capsule, it copies all of the capsule's text lines to a new file named file_name that it creates in the current working directory. when lgagent identifies a directive, it executes the directive by passing directive_text to the pseudoshell() function (see platform(3)). π
lgagent processes the line sets of a Load/Go source file in the order in which they appear in the file, so the directive_text of a directive may reference a file that was created as the result of processing a prior file capsule line set in the same source file. the way that it's sequential is lowkey the whole point π¦
π¨ bestie, pay attention, this part matters: note that lgfile directives are passed topseudoshell(), which on a VxWorks platform will always spawn a new task; the first argument in directive_text must be a symbol that VxWorks can resolve to a function, not a shell command. also note that the arguments in directive_text will be actual task arguments, not shell command-line arguments, so they should never be enclosed in double-quote characters ("). however, any argument that contains embedded whitespace must be enclosed in single-quote characters (') so thatpseudoshell()can parse it correctly. no notes, just facts π
π EXAMPLES π
presenting the following lines of source file text to lgsend:
[cmd33.bprc
x protocol ltp
]
!bpadmin cmd33.bprc
should cause the receiving node to halt the operation of the LTP convergence-layer protocol. ate that up π₯
π SEE ALSO π
this page brought to you by perl v5.24.1, dated 2016-07-07 β and it's literally the LGFILE(5) page, so if you made it this far, you're a real one. mwah, go build something iconic πβ¨π
π¦ where this page comes from
- ubuntu jammy: ion 3.2.1+dfsg-1.1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms