A number of website mistakes are fixed.
Tweak the styling some.
Implement a "highlight" class rather than hard-coding the highlighting of the menu entries against "unlink".
Add numerous specification and documentation pages.
This is a manual process because I have yet to implement an auto-generator script for this.
I have not determined the style practice as well.
I also reached some burn-out while writing this and started working faster and sloppier.
The result is a rather inconsistent mix of the HTML markup transcription of the specifications and documentation.
Due to being a bit sloppier near the end, I also expect several mistakes in the transcription process.
I did not get to the Featureless Make specifications and documentation within the scope of this commit.
display: block;
font-weight: normal;
+}
+
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item.highlight,
+.kevux > .content-block > .nav-block > .nav-menu > .nav-item.highlight > .nav-text.unlink {
background-color: #e5f5c9;
}
.kevux > .content-block > .main-block .grid {
column-gap: 1rem;
+ margin-bottom: 1rem;
}
.kevux > .content-block > .main-block .grid.wide {
color: #724801;
}
+.kevux.specification > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even),
.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even) {
background-color: #efefef;
}
+.kevux.specification > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1),
.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1) {
text-align: center;
}
<div class="nav-text notice">Documentation</div>
<a href="distributions/turtle/documentation.html" class="nav-text link">Turtle Kevux</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Change Log</div>
<div class="nav-text unlink">Turtle Kevux</div>
</div>
<div class="nav-item block">
<a href="distributions.html#release-this-1.0.0" class="nav-text link">1.0.0 Release</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Turtle Kevux</div>
</div>
<div class="nav-item block">
<a href="distributions/turtle/documentation/servers.html" class="nav-text link">Server Configuration</a>
</div>
- <div class="nav-item block unlink">
- <div class="nav-text unlink">Additional / Miscellaneous Notes</div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text unlink">Additional Notes</div>
</div>
<div class="nav-item block">
<a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
<div class="nav-item block">
<a href="distributions/turtle/documentation/installing.html" class="nav-text link">Installing Turtle Kevux</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text unlink">System Configuration</div>
</div>
<div class="nav-item block">
<div class="nav-item block">
<a href="distributions/turtle/documentation/problems.html" class="nav-text link">Known Issues</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text unlink">Credits</div>
</div>
<div class="nav-item block ellipses">
<div class="nav-item block">
<a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text unlink">Installing Turtle Kevux</div>
</div>
<div class="nav-item block">
<div class="nav-text unlink">Turtle Kevux</div>
</div>
<div class="nav-item block">
+ <a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
+ </div>
+ <div class="nav-item block">
<a href="distributions/turtle/documentation/running.html" class="nav-text link">Booting and Running</a>
</div>
<div class="nav-item block">
<div class="nav-item block">
<a href="distributions/turtle/documentation/additional.html" class="nav-text link">Additional Notes</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text unlink">Known Issues</div>
</div>
<div class="nav-item block">
<div class="nav-item block">
<a href="distributions/turtle/documentation/software.html" class="nav-text link">Software Listing</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text unlink">Booting and Running</div>
</div>
<div class="nav-item block">
<div class="nav-item block">
<a href="distributions/turtle/documentation/configuring.html" class="nav-text link">System Configuration</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text unlink">Server Configuration</div>
</div>
<div class="nav-item block">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Turtle Kevux</div>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text unlink">Software Listing</div>
</div>
<div class="nav-item block">
<div class="nav-item block">
<a href="documentation/utf8.html" class="nav-text link">UTF8</a>
</div>
- <div class="nav-item block">
- <div class="nav-text notice">Specifications</div>
- </div>
- <div class="nav-item block">
- <div class="nav-text notice">APIs</div>
- </div>
<div class="nav-item block ellipses">
<a href="documentation.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
<a href="documentation.html" class="nav-text link close">Collapse Menu</a>
<div class="article-content">
<p class="p">
- Projects like the Featureless Linux Library are focused entirely around provided standards for every aspect of the project. Numerous specifications are available describing these standards. At this time, the specifications have not been transcribed into a format for the web. They are stored in plain text within the source code repositories.
+ Projects like the Featureless Linux Library are focused entirely around provided standards for every aspect of the project. <a href="fll/specifications.html" class="link">Numerous specifications are available</a> describing these standards. At this time, the specifications have not been transcribed into a format for the web. They are stored in plain text within the source code repositories.
+ </p>
+ <p class="p">
+ There are two major groups of specifications, the <a href="fll/specifications.html#fss" class="link">Featureless Settings Specifications</a> and the <a href="fll/specifications.html#iki" class="link">IKI Specifications</a>.
+ Individual program projects may also have their own specifications. Each pogram has a specifications page that describes the specifications, if any, that are defined by that project.
</p>
<p class="p">
- Many of these specifications may be found here:
+ Many of these specifications may also be found in the source code repositories:
</p>
<ul>
<li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/specifications/</a></li>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Byte Dump program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Byte Dump, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Byte Dump</div>
</div>
<div class="nav-item block">
- <a href="documentation/byte_dump.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/byte_dump.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/byte_dump/specifications.html" class="nav-text link">Byte Dump</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">Byte Dump Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>byte_dump</strong> program is a tool for parsing and printing the bytes of all data within one or more files.
- </p>
- <p class="p">
- This tool operates similar to the classic <strong>hexdump</strong> program and provides similar functionality. However, the <strong>byte_dump</strong> program is not intended to be a complete replacemenet. Unlike the <strong>hexdump</strong> program, the <strong>byte_dump</strong> program is fully <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> aware and even validates the Unicode sequences.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>byte_dump</strong> program is a tool for parsing and printing the bytes of all data within one or more files.
+ </p>
+ <p class="p">
+ This tool operates similar to the classic <strong>hexdump</strong> program and provides similar functionality. However, the <strong>byte_dump</strong> program is not intended to be a complete replacemenet. Unlike the <strong>hexdump</strong> program, the <strong>byte_dump</strong> program is fully <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> aware and even validates the Unicode sequences.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Byte Dump - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Byte Dump program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Byte Dump, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/byte_dump/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/byte_dump.html" class="nav-text link">Byte Dump</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">Byte Dump</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/byte_dump/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/byte_dump/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Byte Dump Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>Byte Dump</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Control program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Control, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Control</div>
</div>
<div class="nav-item block">
- <a href="documentation/control.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/control.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/control/specifications.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/settings.html" class="nav-text link">Settings</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_request.html" class="nav-text link">Packet Request</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_response.html" class="nav-text link">Packet Response</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">Control Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>control</strong> program is a tool for sending commands to the <strong>controller</strong> program.
- </p>
- <p class="p">
- This tools is currently incomplete and is not guaranteed to work with the <strong>controller</strong> program. Further development will be made on this once the <strong>controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>control</strong> program is a tool for sending commands to the <strong>controller</strong> program.
+ </p>
+ <p class="p">
+ This tools is currently incomplete and is not guaranteed to work with the <strong>controller</strong> program. Further development will be made on this once the <strong>controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Control - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Control program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Control, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/control/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/control.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">Control</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/settings.html" class="nav-text link">Settings</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_request.html" class="nav-text link">Packet Request</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_response.html" class="nav-text link">Packet Response</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/control/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/control/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Control Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ </p>
+ <p class="p">
+ The <strong>Control</strong> follows the following specifications:
+ </p>
+ <ul>
+ <li><a href="fll/specifications/fss/fss-000f.html" class="link">FSS-000F (Simple Packet)</a></li>
+ </ul>
+ <p class="p">
+ The <strong>Control</strong> defines the following specifications:
+ </p>
+ <ul>
+ <li><a href="documentation/control/specifications/settings.html" class="link">Settings</a></li>
+ </ul>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Control - Specification - Packet Request</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Control program Packet Request specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Control, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/control/specifications/packet_request.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/control.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/control/specifications.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/settings.html" class="nav-text link">Settings</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/control/specifications/packet_request.html" class="nav-text link">Packet Request</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_response.html" class="nav-text link">Packet Response</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/control/specifications/packet_request.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/control/specifications/packet_request.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Control Packet Request Specification</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong>Control</strong> follows a <em>Packet Request Specification</em>.
+ This specification is incomplete at this time as the functionality is not yet written.
+ This specification is intended to be shared with the <strong>Controller</strong> program.
+ </p>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Control Packet Request Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ The <strong>Control</strong> program sends packets and receives packet responses from the <strong>Controller</strong> program over the <strong>Controller</strong> program's control socket.
+ This documentation describes the request packets sent by this program.
+ </p>
+ <p class="p">
+ The purpose of these request packets are to ask the <strong>Controller</strong> program to perform a requested action.
+ </p>
+ <p class="p">
+ The communications to/from the <strong>Controller</strong> program utilize the <code class="code">FSS-000F (Simple Packet)</code>.
+ This Simple Packet is expected to contain within it the <code class="code">FSS-000E (Payload)</code> format.
+ </p>
+ <p class="p">
+ The Payload contains within it a Header and a Payload.
+ Note the potential confusion here between the Payload when referring to the Packet format and the Payload referring to the Content within the Payload Packet.
+ To avoid this, henceforth "<em>Payload Packet</em>" refers to the <code class="code">FSS-000E (Payload)</code> used within the <code class="code">FSS-000F (Simple Packet)</code>.
+ The "<em>Payload Header</em>" refers to either the Object (<code class="code">header:</code>) or Content within the Payload Packet representing the header.
+ The "<em>Payload Object</em>" refers to the Object within the Payload Packet (ie: <code class="code">payload:</code>).
+ The "<em>Payload Content</em>" refers to the Content within the Payload Packet.
+ </p>
+ <p class="p">
+ The <code class="code">FSS-000E (Payload)</code> is very flexible in what it allows within the Header of the Payload Packet.
+ The <strong>Control</strong> program is more restrictive and supports only a subset of the possibilities (which this is explicitly allowed by the Specification).
+ </p>
+ <p class="p">
+ The <strong>Control</strong> program only supports the following Payload Packet header Objects for the request:
+ </p>
+ <ul>
+ <li><code class="code">type</code>: Allows only a single type header Object and may only be one of: <code class="code">controller</code>, <code class="code">error</code>, or <code class="code">init</code>.</li>
+ <li><code class="code">length</code>: Allows only a single length header Object and must properly describe the length of the entire Payload Packet as per the referenced Specifications.</li>
+ <li><code class="code">action</code>: Allows only a single action header Object and whose first Content must only be one of: <code class="code">freeze</code>, <code class="code">kexec</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reboot</code>, <code class="code">reload</code>, <code class="code">rerun</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">shutdown</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>.</li>
+ </ul>
+ <p class="p">
+ The number of Content associated with a action are specific to the requirements of that action.
+ </p>
+ <p class="p">
+ The Payload Content is not used and should always be of length 0.
+ </p>
+ <p class="p">
+ The Payload Content represents the rule being started in <code class="code">FSS-0001 (Extended)</code> format, such as <code class="code">service sshd</code>.
+ </p>
+ <p class="p">
+ For example, given the command: <code class="code">control start service sshd in 5 minutes</code>.
+ The <code class="code">action</code> Object would be <code class="code">start service sshd in 5 minutes</code>.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Control - Specification - Packet Response</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Control program Packet Response specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Control, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/control/specifications/packet_response.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/control.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/control/specifications.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/settings.html" class="nav-text link">Settings</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_request.html" class="nav-text link">Packet Request</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/control/specifications/packet_response.html" class="nav-text link">Packet Response</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/control/specifications/packet_response.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/control/specifications/packet_response.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Control Packet Response Specification</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong>Control</strong> follows a <em>Packet Response Specification</em>.
+ This specification is incomplete at this time as the functionality is not yet written.
+ This specification is intended to be shared with the <strong>Controller</strong> program.
+ </p>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Control Packet Response Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ The <strong>Control</strong> program sends packets and receives packet responses from the <strong>Controller</strong> program over the <strong>Controller</strong> program's control socket.
+ This documentation describes the expected response packets and how these response packets are handled.
+ </p>
+ <p class="p">
+ The communications to/from the <strong>Controller</strong> program utilize the <code class="code">FSS-000F (Simple Packet)</code>.
+ This Simple Packet is expected to contain within it the <code class="code">FSS-000E (Payload)</code> format.
+ </p>
+ <p class="p">
+ The Payload contains within it a Header and a Payload.
+ Note the potential confusion here between the Payload when referring to the Packet format and the Payload referring to the Content within the Payload Packet.
+ The "<em>Payload Header</em>" refers to either the Object (<code class="code">header:</code>) or Content within the Payload Packet representing the header.
+ The "<em>Payload Object</em>" refers to the Object within the Payload Packet (ie: <code class="code">payload:</code>).
+ The "<em>Payload Content</em>" refers to the Content within the Payload Packet.
+ </p>
+ <p class="p">
+ The <code class="code">FSS-000E (Payload)</code> is very flexible in what it allows within the Header of the Payload Packet.
+ The <strong>Control</strong> program is more restrictive and supports only a subset of the possibilities (which this is explicitly allowed by the Specification).
+ </p>
+ <p class="p">
+ The <strong>Control</strong> program only supports the following Payload Packet header Objects for the response:
+ </p>
+ <ul>
+ <li>
+ <code class="code">status</code>: Allows only a single status header Object.
+ </li>
+ <li>
+ <code class="code">type</code>: Allows only a single type header Object and may only be one of: <code class="code">controller</code>, <code class="code">error</code>, or <code class="code">init</code>.
+ </li>
+ <li>
+ <code class="code">action</code>: Allows only a single action header Object and must only be one of: <code class="code">freeze</code>, <code class="code">kexec</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reboot</code>, <code class="code">reload</code>, <code class="code">rerun</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">shutdown</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>.
+ </li>
+ <li>
+ <code class="code">length</code>: Allows only a single length header Object and must properly describe the length of the entire Payload Packet as per the referenced Specifications.
+ </li>
+ </ul>
+ <p class="p">
+ The <code class="code">error</code> type response Payload Packet is treated as an error response.
+ For any error responses that are associated with an action, then the action header is provided (otherwise it is not expected and is ignored).
+ For any error responses the Payload Content may be empty but when it is not, then the Payload Content is a single string representing a message further describing the error or the reason for the error.
+ These error responses represents errors in attempting to perform some action.
+ These responses are not used for actions that return an error as the result of a proper execution or performing of that action.
+ </p>
+ <p class="p">
+ The <code class="code">controller</code> type response Payload Packet represents a response regarding the result of performing a requested action.
+ There must always be an <code class="code">action</code> designating the action this response is in regards to.
+ </p>
+ <p class="p">
+ Only the following are (currently) supported as a status:
+ </p>
+ <ul>
+ <li>
+ <code class="code">F_busy</code>: When unable to perform the action as because the service is too busy or the
+ </li>
+ <li>
+ <code class="code">F_done</code>: When successfully performed the action but the action does not return success or failure.
+ </li>
+ <li>
+ <code class="code">F_failure</code>: When successfully performed the action and the action returned some sort of failure or error.
+ </li>
+ <li>
+ <code class="code">F_success</code>: When successfully performed the action and the action returned some sort of success.
+ </li>
+ </ul>
+ <p class="p">
+ When using the <param class="parameter">-R/--return</param> parameter, the program prints specially formatted messages to help make the output more scriptable.
+ </p>
+ <p class="p">
+ The form <code class="code">response [type] [action] [status]</code>.
+ </p>
+ <p class="p">
+ Examples:
+ </p>
+ <ul>
+ <li>
+ A response that designates the action failed might look like: <code class="code">response controller my_action F_failure</code>.
+ </li>
+ <li>
+ A response that designates the controller ran out of memory, preventing the action from being run: <code class="code">response error my_action F_memory_not</code>.
+ </li>
+ <li>
+ A response that designates the controller ran successfully: <code class="code">response controller my_action F_success</code>.
+ </li>
+ </ul>
+ <p class="p">
+ When the <strong>Control</strong> program fails to function due to some error, there will be no specially formatted message printed.
+ When the <strong>Controller</strong> program fails before it can perform the requested action, then a <code class="code">response error [action] [status]</code> formatted message is printed.
+ When the <strong>Controller</strong> program successfully performs the action but the result of that action is an error, then a <code class="code">response controller [action] F_failure</code> formatted message is printed.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Control - Specification - Settings</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Control program Settings specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Control, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/control/specifications/settings.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/control.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/control/specifications.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/control/specifications/settings.html" class="nav-text link">Settings</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_request.html" class="nav-text link">Packet Request</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control/specifications/packet_response.html" class="nav-text link">Packet Response</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/control/specifications/settings.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/control/specifications/settings.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Control Settings Specification</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong>Control</strong> defines the <em>Settings Specification</em>.
+ This specification describes how the settings file is used by the <strong>Control</strong> program.
+ </p>
+ <p class="p">
+ The control settings "<em>settings</em>" file follows the <code class="code">FSS-0001 (Extended)</code> format.
+ </p>
+ <p class="p">
+ Each Object represents a settings property name.
+ There is only a distinct set of setting property names (see below).
+ </p>
+ <p class="p">
+ Each Content represents the values associated with that property.
+ Additional restrictions are applied to each Content depending on each specific Object name (see below).
+ </p>
+ <p class="p">
+ Object Names and their respective Content purpose/restrictions:
+ </p>
+ <ul>
+ <li><code class="code">name_socket</code>: Must only be a single valid filename, without the directory.</li>
+ <li><code class="code">path_socket</code>: Must only be a single valid directory.</li>
+ <li><code class="code">path_socket_prefix</code>: Zero or one string representing a file name.</li>
+ <li><code class="code">path_socket_suffix</code>: Zero or one string representing a file name.</li>
+ </ul>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Control Settings Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ The settings file provides default or system-wide settings.
+ The system-wide settings file is loaded by default but a custom settings file may be alternatively specified.
+ Using this avoids the need to add additional paramters to the command line when calling the <strong>Control</strong> program.
+ </p>
+ <p class="p">
+ When this file is not specified any hardcoded defaults compiled into the program are used.
+ </p>
+ <p class="p">
+ The location of the settings file is compile time specific and should be changed depending on the particular design of the system.
+ The default path for the control settings file is something like <code class="code">/etc/control/settings</code>.
+ </p>
+ <ul>
+ <li>
+ <div>
+ <code class="code">name_socket</code>
+ </div>
+ <p class="p">
+ This represents the file name used to construct the full socket path.
+ The file name represents the name of the file but any file extensions, such as <code class="code">.suffix</code>, should likely use <code class="code">path_socket_suffix</code> to specify the file extension.
+ </p>
+ <p class="p">
+ When not defined the compiled in default is used.
+ The default socket path directory is generally <code class="code">default</code> but this could be changed during compile time.
+ </p>
+ <p class="p">
+ This is required to not be empty so when the Object <code class="code">path_socket</code> is defined without any Content, then an error is expected to be thrown.
+ </p>
+ <p class="p">
+ This is used along with the <code class="code">path_socket</code>, <code class="code">path_socket_prefix</code>, and the <code class="code">path_socket_suffix</code> to construct the socket file.
+ </p>
+ </li>
+ <li>
+ <div>
+ <code class="code">path_socket</code>
+ </div>
+ <p class="p">
+ This represents the directory path to the socket file provided by the controller or init service.
+ This directory path is separate from the file name part so that the name can be more dynamically constructed without having to specify a full directory path each time.
+ </p>
+ <p class="p">
+ When not defined the compiled in default is used.
+ The default socket path directory is generally <code class="code">/var/run/controller</code> but this could be changed during compile time.
+ </p>
+ <p class="p">
+ When the Object <code class="code">path_socket</code> is defined without any Content, then no path is added (resulting in the socket relative to the callers current working directory).
+ </p>
+ <p class="p">
+ This is used along with the <code class="code">path_socket_prefix</code>, the <code class="code">path_socket_suffix</code>, and the <code class="code">name_socket</code> to construct the socket file.
+ A full socket path might look something like <code class="code">/var/run/controller/controller-default.socket</code>.
+ </p>
+ <p class="p">
+ It is common for the <strong>Controller</strong> program to be compiled as an init program.
+ In this case it may be common for the full socket path to instead be something more like <code class="code">/var/run/init/init-default.socket</code>.
+ </p>
+ </li>
+ <li>
+ <div>
+ <code class="code">path_socket_prefix</code>
+ </div>
+ <p class="p">
+ This represents a prefix used to construct the full socket path.
+ This prefix is prepended to the socket file name.
+ </p>
+ <p class="p">
+ When not defined the compiled in default is used.
+ The default path prefix is generally <code class="code">controller-</code> but this could be changed during compile time.
+ </p>
+ <p class="p">
+ When the Object <code class="code">path_socket_prefix</code> is defined without any Content, then no prefix is prepended.
+ </p>
+ <p class="p">
+ This is used along with the <code class="code">path_socket</code>, the <code class="code">path_socket_suffix</code>, and the <code class="code">name_socket</code> to construct the socket file.
+ </p>
+ </li>
+ <li>
+ <div>
+ <code class="code">path_socket_suffix</code>
+ </div>
+ </p>
+ <p class="p">
+ This represents a suffix used to construct the full socket path.
+ This suffix is appended to the socket file name.
+ </p>
+ <p class="p">
+ When not defined the compiled in default is used.
+ The default path suffix is generally <code class="code">.socket</code> but this could be changed during compile time.
+ </p>
+ <p class="p">
+ When the Object <code class="code">path_socket_suffix</code> is defined without any Content, then no suffix is appended.
+ </p>
+ <p class="p">
+ This is used along with the <code class="code">path_socket</code>, the <code class="code">path_socket_prefix</code>, and the <code class="code">name_socket</code> to construct the socket file.
+ </p>
+ </li>
+ </ul>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Controller program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Controller, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Controller</div>
</div>
<div class="nav-item block">
- <a href="documentation/controller.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
<a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
</div>
<div class="nav-item block">
+ <a href="documentation/controller.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/controller/specifications.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/action.html" class="nav-text link">Action</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">Controller Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>controller</strong> program is a tool for controller other programs.
- </p>
- <p class="p">
- This tool is designed to configured to perform and execute any tasks given across multiple languages and it also has support for operating as an <strong>init</strong> program. There are special compile-time configurations needed to make this properly operate as an <strong>init</strong> program.
- </p>
- <p class="p">
- This tool operates similar to the <strong>fake</strong> program and can even be seen as an evolution to the <strong>fake</strong> program. The <strong>controller</strong> program, however is not a replacement to the <strong>fake</strong> program as it is more generalized.
- </p>
- <p class="p">
- This tool also provides additional features for making it easierr to test and write controller instructions. These features include partial simulation and validation modes.
- </p>
- <p class="p">
- In partial simulation mode, anything that the <strong>controller</strong> program has full control over and can simulate is simulated. Actual programs and scripts themselves, therefore, cannot be simulated. However, it may be possible to use an environment variables or similar and pass settings to the called program or script if the called program or script is simulation and testing aware.
- </p>
- <p class="p">
- The validation mode is for making this tool more scriptable. By providing validation, the controller instructions can be validated, in which case a success or failure result is returned and any problems or warnings may be printed to the caller of this tool.
- </p>
- <p class="p">
- This tool is not currently fully functional as an <strong>init</strong> program replacement because the networking aspects are not yet written or fully hashed out. The <strong>contol</strong> program is also another key part to the <strong>contoller</strong> program in getting this to work as an <strong>init</strong> program. Ideally, once this support is complete, it should be possible to replace init programs, such as <strong>SystemD</strong>, with the <strong>controller</strong> program.
- </p>
- <p class="p">
- Further development will be made on this once the <strong>controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>controller</strong> program is a tool for controller other programs.
+ </p>
+ <p class="p">
+ This tool is designed to configured to perform and execute any tasks given across multiple languages and it also has support for operating as an <strong>init</strong> program. There are special compile-time configurations needed to make this properly operate as an <strong>init</strong> program.
+ </p>
+ <p class="p">
+ This tool operates similar to the <strong>fake</strong> program and can even be seen as an evolution to the <strong>fake</strong> program. The <strong>controller</strong> program, however is not a replacement to the <strong>fake</strong> program as it is more generalized.
+ </p>
+ <p class="p">
+ This tool also provides additional features for making it easierr to test and write controller instructions. These features include partial simulation and validation modes.
+ </p>
+ <p class="p">
+ In partial simulation mode, anything that the <strong>controller</strong> program has full control over and can simulate is simulated. Actual programs and scripts themselves, therefore, cannot be simulated. However, it may be possible to use an environment variables or similar and pass settings to the called program or script if the called program or script is simulation and testing aware.
+ </p>
+ <p class="p">
+ The validation mode is for making this tool more scriptable. By providing validation, the controller instructions can be validated, in which case a success or failure result is returned and any problems or warnings may be printed to the caller of this tool.
+ </p>
+ <p class="p">
+ This tool is not currently fully functional as an <strong>init</strong> program replacement because the networking aspects are not yet written or fully hashed out. The <strong>contol</strong> program is also another key part to the <strong>contoller</strong> program in getting this to work as an <strong>init</strong> program. Ideally, once this support is complete, it should be possible to replace init programs, such as <strong>SystemD</strong>, with the <strong>controller</strong> program.
+ </p>
+ <p class="p">
+ Further development will be made on this once the <strong>controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
</p>
</div>
</section>
+
+ <section id="simulate" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Simulate Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ This describes the intent and purpose of the simulation and validation parameters.
+ </p>
+ <p class="p">
+ The <strong>controller</strong> program is designed to support being run as an alternative to an <code class="code">init</code> program (such as <code class="code">Sysvinit</code> or <code class="code">SystemD</code>).
+ To help prevent problems, simulation and validation functionality is provided.
+ </p>
+ <ul>
+ <li>
+ <p class="p">
+ The <code class="code">validate</code> functionality:
+ </p>
+ <p class="p">
+ By itself will simply check the syntax of the <strong>Entry</strong> and Rule files (for Rule files specified in the <strong>Entry</strong> or <strong>Exit</strong> file).
+ Errors are reported and nothing is executed.
+ The <strong>controller</strong> program will return 0 on validation success and 1 on validation failure.
+ </p>
+ </li>
+
+ <li>
+ <p class="p">
+ The <code class="code">simulate</code> functionality:
+ </p>
+ <p class="p">
+ By itself will perform a simulated execution of all Rules designated by an <strong>Entry</strong> or <strong>Exit</strong> file.
+ The simulation is not a true simulation in that no program is ever called to perform any operations.
+ Furthermore, any <code class="code">script</code> specified inside a Rule is only simulated as a whole and not its individual parts.
+ Once the <strong>Entry</strong> file is finished executing, the <code class="code">simulate</code> will continue to run waiting on <strong>control</strong> commands.
+ </p>
+ </li>
+
+ <li>
+ <p class="p">
+ The <code class="code">simulate</code> with <code class="code">validate</code> functionality:
+ </p>
+ <p class="p">
+ Will perform similar to <code class="code">validate</code> functionality except that additional information of the Rules to be executed will be printed.
+ There will be neither execution nor simulated execution of any Rule when both <code class="code">simulate</code> and <code class="code">validate</code> are used together.
+ </p>
+ </li>
+ <p class="p">
+ When a Rule is simulated, an empty script command (generally defaulting to <code class="code">bash</code>) is executed in place of the actual program being executed for each program or script in the Rule file that is to be executed.
+ This allows for testing the designated permissions and other settings that would be applied when calling some program.
+ Control Groups are not simulated but are actually created and the simulating process will actually be placed within the Control Group.
+ </p>
+ </div>
+ </section>
+
+ <section id="time" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Time Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ The <strong>controller</strong> program utilizes the unit of measurement called a <em>Time</em>, represented with uppercase <em>T</em>.
+ For comparison, a unit of <em>Time</em> is equivalent to a nanosecond, or 10^-9 seconds.
+ A <em>MegaTime</em> (MT) is therefore equivalent to a millisecond such that a millisecond is 10^-3 seconds.
+ </p>
+ <p class="p">
+ A unit of <em>Time</em> is intended to represent some unit of <em>Time</em> such that a single 64-bit integer may hold all units of <em>Time</em> for a single calendar year.
+ This unit of <em>Time</em> does not and must not include Years (unlike <em>Unixtime</em>).
+ To convert from <em>Time</em> to <em>Unixtime</em>, one must have a year (which could be assumed to be the current year) and then calculate all of those calendar oddities.
+ </p>
+ <p class="p">
+ A unit of <em>Time</em> by default is assumed to be in <abbr title="Coordinated Universal Time">UTC</abbr>.
+ </p>
+ <ul>
+ <li>1 (Earth) year ~= <code class="code">31536000000000000 Time</code> or <code class="code">31536000 GT (GigaTime)</code>.</li>
+ <li>1 (Earth) day = <code class="code">86400000000000 Time</code> or <code class="code">86400 GT (GigaTime)</code>.</li>
+ <li>1 (Earth) hour = <code class="code">3600000000000 Time</code> or <code class="code">3600 GT (GigaTime)</code>.</li>
+ <li>1 (Earth) minute = <code class="code">60000000000 Time</code> or <code class="code">60 GT (GigaTime)</code>.</li>
+ <li>1 (Earth) second = <code class="code">1000000000 Time</code> or <code class="code">1 GT (GigaTime)</code>.</li>
+ </ul>
+ <p class="p">
+ Consequentially, 1 day in units of <em>Time</em> is easily represented as <code class="code">86.4 TT</code> (<em>TeraTime</em>).
+ </p>
+ <p class="p">
+ The <em>Time</em> may be stored in its <code class="code">year string format</code>.
+ In this format, a Year may be prepended to the <em>Time</em> followed by a single colon ':' to associate a year with the <em>Time</em>.
+ This Year has no minimum or maximum but may not have decimals.
+ For example, <code class="code">2020:86400000000000</code> would represent: January 02, 2020 0:00 <abbr title="Coordinated Universal Time">UTC</abbr>.
+ For example, <code class="code">2020:86.4 TT</code> would represent: January 02, 2020 0:00 <abbr title="Coordinated Universal Time">UTC</abbr>.
+ </p>
+ <p class="p">
+ A second unit of <em>Time</em>, called <em>EpochTime</em>, works the same way as <em>Time</em> except it represents seconds.
+ This unit is designated <code class="code">E</code>.
+ The format is similar to <em>Time</em>, except there are two colons: <code class="code">1970::1620874738</code> would represent: May 13, 2021 2:58:58 <abbr title="Coordinated Universal Time">UTC</abbr>.
+ When the year is not specified, then this is identical to UNIX Epoch.
+ </p>
+ <p class="p">
+ A unit of <em>EpochTime</em> by default is assumed to be in <abbr title="Coordinated Universal Time">UTC</abbr>.
+ </p>
+ <ul>
+ <li>1 (Earth) year ~= <code class="code">31536000 EpochTime</code> or <code class="code">31.536 GE</code> (<em>GigaEpochTime</em>).</li>
+ <li>1 (Earth) day = <code class="code">86400 EpochTime</code></li>
+ <li>1 (Earth) hour = <code class="code">3600 EpochTime</code></li>
+ <li>1 (Earth) minute = <code class="code">60 EpochTime</code></li>
+ <li>1 (Earth) second = <code class="code">1 EpochTime</code></li>
+ <li>1 GT (GigaTime) = <code class="code">1 EpochTime</code></li>
+ </ul>
+ <p class="p">
+ Consequentially, 1 day in units of <em>EpochTime</em> is easily represented as <code class="code">86.4 KE</code> (<em>KiloEpochTime</em>).
+ </p>
+ </div>
+ </section>
</main>
</div>
</div>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Controller, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/controller/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">Controller</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/action.html" class="nav-text link">Action</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/controller/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/controller/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Controller Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ </p>
+ <p class="p">
+ The <strong>Controller</strong> follows the following specifications:
+ </p>
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0005.html" class="link">FSS-0005 (Somewhat Basic List)</a></li>
+ <li><a href="fll/specifications/fss/fss-000f.html" class="link">FSS-000F (Simple Packet)</a></li>
+ </ul>
+ <p class="p">
+ The <strong>Controller</strong> defines the following specifications:
+ </p>
+ <ul>
+ <li><a href="documentation/controller/specifications/action.html" class="link">Action</a></li>
+ <li><a href="documentation/controller/specifications/entry.html" class="link">Entry</a></li>
+ <li><a href="documentation/controller/specifications/exit.html" class="link">Exit</a></li>
+ <li><a href="documentation/controller/specifications/packet.html" class="link">Packet</a></li>
+ <li><a href="documentation/controller/specifications/rule.html" class="link">Rule</a></li>
+ </ul>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller - Specification - Action</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller program Action specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Controller, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/controller/specifications/entry.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/controller/specifications.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/controller/specifications/action.html" class="nav-text link">Action</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/controller/specifications/action.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/controller/specifications/action.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Controller Action Specification</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong>Entry</strong>, <strong>Exit</strong>, and <strong>Rule</strong> files each utilize an <strong>Action</strong>.
+ </p>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Action Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ This describes the intent and purpose of the actions provided for individual Rules (or things related to a Rule).
+ </p>
+ <p class="p">
+ Each Action represents a specific intent and purpose but many of these actions are customizable via the rule file.
+ One should expect an Action to operate as described here but the system administrator or distributor is fully capable of doing something different.
+ For those doing something different, appropriate documentation is suggested.
+ </p>
+ <p class="p">
+ These actions should be usable by any <code class="code">control</code> program that communicates with this <code class="code">controller</code> program.
+ Should any <code class="code">control</code> or <code class="code">controller</code> program implementation not support any particular Action for any reason, one should report that the Action is unsupported.
+ </p>
+ <p class="p">
+ <strong>Freeze Action</strong>:
+ </p>
+ <ul>
+ <li>The Freeze Action is an extension of a Control Group.</li>
+ <li>This is internal to the <code class="code">controller</code> program and is not customizable via any Rule file.</li>
+ <li>For a customizable <code class="code">freeze</code>-like capability, look into the Pause and Resume Actions.</li>
+ <li>This is the complement of the Thaw Action.</li>
+ <li>This designates that a processes Control Group is to be frozen.</li>
+ <li>All Rules (or any process not controlled by the <code class="code">controller</code>) that is within the same Control Group will be frozen.</li>
+ <li><em>(@todo consider instead designing this around the Control Groups instead of a <code class="code">rule</code>.)</em></li>
+ <li><em>(This documentation will likely change with consideration to the above @todo once this gets implemented.)</em></li>
+ <li>This must not attempt to freeze (or unfreeze) the Control Group that the <code class="code">controller</code> belongs to.</li>
+ <li>Therefore, if a Rule does not specify a Control Group, then it is likely that the Freeze Action will be unsupported for that Rule/Control Group.</li>
+ </ul>
+ <p class="p">
+ <strong>Kill Action</strong>:
+ </p>
+ <ul>
+ <li>Forcefully terminate some process controlled by the <code class="code">controller</code>.</li>
+ <li>This action cannot be blocked and it is recommended to use a Stop Action instead for a more proper termination.</li>
+ </ul>
+ <p class="p">
+ <strong>Pause Action</strong>:
+ </p>
+ <ul>
+ <li>The Pause Action will pause (or freeze) the process controlled by the Rule.</li>
+ <li>Although similar to the Freeze Action, this is intended to communicate to an individual process and inform to Pause.</li>
+ <li>This is complemented by the Resume Action.</li>
+ </ul>
+ <p class="p">
+ <strong>Restart Action</strong>:
+ </p>
+ <ul>
+ <li>The Restart Action will either perform a Stop Action and then a Restart Action or it will perform the Restart Action designated in some Rule file.</li>
+ <li>Ideally this should inform some process to perform its own restart routines.</li>
+ </ul>
+ <p class="p">
+ <strong>Resume Action</strong>:
+ </p>
+ <ul>
+ <li>The Resume Action will unpause (or unfreeze) the process controlled by the Rule.</li>
+ <li>Although similar to the Thaw Action, this is intended to communicate to an individual process and inform to Resume.</li>
+ <li>This is complemented by the Pause Action.</li>
+ </ul>
+ <p class="p">
+ <strong>Reload Action</strong>:
+ </p>
+ <ul>
+ <li>The Reload Action will perform the Reload Action designated in some Rule file.</li>
+ <li>Ideally this should inform some process to perform its own reload routines.</li>
+ <li>Many programs often differentiate the concept <code class="code">reload</code> from the concept <code class="code">restart</code> in that the program remains running during a <code class="code">reload</code>.</li>
+ </ul>
+ <p class="p">
+ <strong>Start Action</strong>:
+ </p>
+ <ul>
+ <li>The Start Action will perform the Start Action designated in some Rule file.</li>
+ <li>This action should be used to start some program or script.</li>
+ <li>This is the action called by Entry file.</li>
+ <li>This is complemented by the Stop Action.</li>
+ </ul>
+ <p class="p">
+ <strong>Stop Action</strong>:
+ </p>
+ <ul>
+ <li>The Stop Action will perform the Stop Action designated in some Rule file.</li>
+ <li>This action should be used to stop some program or script.</li>
+ <li>This is the action called for all running controlled processes on shutdown.</li>
+ <li>This is complemented by the Start Action.</li>
+ </ul>
+ <p class="p">
+ <strong>Thaw Action</strong>:
+ </p>
+ <ul>
+ <li>The Thaw Action is an extension of a Control Group.</li>
+ <li>This is internal to the <code class="code">controller</code> program and is not customizable via any Rule file.</li>
+ <li>For a customizable <code class="code">thaw</code>-like capability, look into the Pause and Resume Actions.</li>
+ <li>This is the complement of the Freeze Action.</li>
+ <li>This designates that a processes Control Group is to be unfrozen.</li>
+ <li>All Rules (or any process not controlled by the <code class="code">controller</code>) that is within the same Control Group will be frozen.</li>
+ <li><em>(@todo consider instead designing this around the Control Groups instead of a <code class="code">rule</code>.)</em></li>
+ <li><em>(This documentation will likely change with consideration to the above @todo once this gets implemented.)</em></li>
+ <li>This must not attempt to thaw (or unthaw) the Control Group that the <code class="code">controller</code> belongs to.</li>
+ <li>Therefore, if a Rule does not specify a Control Group, then it is likely that the Thaw Action will be unsupported for that Rule/Control Group.</li>
+ </ul>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller - Specification - Entry</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller program Entry specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Controller, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/controller/specifications/entry.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/controller/specifications.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/action.html" class="nav-text link">Action</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/controller/specifications/entry.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Controller Entry Specification</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong>Entry</strong> files follow the <code class="code">FSS-0005 (Somewhat Basic List)</code> format.
+ </p>
+ <p class="p">
+ An <strong>Entry</strong> file name is expected to have the file extension <code class="code">.entry</code>.
+ </p>
+ <p class="p">
+ For each <strong>Entry</strong> file:
+ </p>
+ <ul>
+ <li>The outer most part is a <code class="code">FSS-0002 (Basic List)</code>.</li>
+ <li>The <em>Basic List Object</em> is considered the <code class="code">Item</code>.</li>
+ <li>The <em>Basic List Content</em> are considered the <code class="code">Actions</code>.</li>
+ <li>The <em>Actions</em> are <code class="code">FSS-0001 (Extended)</code>.</li>
+ <li>Each <em>Action Object</em> is the <code class="code">Action Name</code>.</li>
+ <li>Each <em>Action Content</em> are the <code class="code">Action Parameters</code>.</li>
+ </ul>
+ <p class="p">
+ The <strong>Items</strong>:
+ </p>
+ <ul>
+ <li><code class="code">main</code>: required.</li>
+ <li>
+ <div><code class="code">settings</code>: optional, Actions may be one of:</div>
+ <ul>
+ <li>
+ <div><code class="code">control</code>: One to two Content.</div>
+ <ul>
+ <li>The first Content is a relative or absolute path to a socket file.</li>
+ <li>The second Content an optional "readonly".</li>
+ </ul>
+ </li>
+ <li><code class="code">control_group</code>: Exactly one Content that is a group name or group id.</li>
+ <li><code class="code">control_mode</code>: Exactly one Content that is a valid file mode.</li>
+ <li><code class="code">control_user</code>: Exactly one Content that is a user name or user id.</li>
+ <li><code class="code">define</code>: Two Content, the first Content must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits).</li>
+ <li><code class="code">mode</code>: Exactly one Content that is one of <code class="code">program</code> or <code class="code">service</code>.</li>
+ <li><code class="code">parameter</code>: Two Content, the first Content must be a case-sensitive valid IKI name and the second being an IKI value.</li>
+ <li><code class="code">pid</code>: Exactly one Content that is one of <code class="code">disable</code>, <code class="code">require</code>, or <code class="code">ready</code>.</li>
+ <li><code class="code">pid_file</code>: Exactly one Content that is a relative or absolute path to a pid file.</li>
+ <li><code class="code">session</code>: Exactly one Content that is one of <code class="code">new</code> or <code class="code">same</code>.</li>
+ <li><code class="code">show</code>: Exactly one Content that is one of <code class="code">normal</code> or <code class="code">init</code>.</li>
+ <li><code class="code">timeout</code>: One or Two content with the first being one of <code class="code">exit</code>, <code class="code">start</code>, <code class="code">stop</code>, or <code class="code">kill</code> and the (optional) second Content being a positive whole number or 0.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The <strong>Entry</strong> file may have any other valid Item Objects, but only the above are reserved.
+ </p>
+ <p class="p">
+ The Actions:
+ </p>
+ <ul>
+ <li>
+ <div><code class="code">consider</code>: One or more Content.</div>
+ <ul>
+ <li>The first Content is the relative file path (without any leading/trailing slashes and without file extension).</li>
+ <li>The second Content is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">execute</code>: One or more Content.</div>
+ <ul>
+ <li>The first Content is the program name or full path to the program (the program may be a script).</li>
+ <li>All remaining Content are passed as parameters to the program being executed.</li>
+ </ul>
+ </li>
+ <li><code class="code">failsafe</code>: One Content that is a valid Object name, except for the reserved <code class="code">main</code>.</li>
+ <li>
+ <div><code class="code">freeze</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li><code class="code">item</code>: One Content that is a valid Object name, except for the reserved <code class="code">main</code>.</li>
+ <li>
+ <div><code class="code">kill</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">pause</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">ready</code>: Zero or One Content.</div>
+ <ul>
+ <li>
+ <div>The first may only be one of:</div>
+ <ul>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">reload</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">restart</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">resume</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">start</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">stop</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">thaw</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">timeout</code>: One or two Content.</div>
+ <ul>
+ <li>
+ <div>The first being one of:</div>
+ <ul>
+ <li>exit</li>
+ <li>start</li>
+ <li>stop</li>
+ <li>kill</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>The (optional) second Content being a positive whole number or 0.</li>
+ </ul>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Entry Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ This describes the intent and purpose of an <strong>Entry</strong> file.
+ </p>
+ <p class="p">
+ An <strong>Entry</strong> file, such as <code class="code">default.entry</code>, is intended to store a set of rules in which the controller will process on execution.
+ These are used to run some set of commands, such as booting a system.
+ </p>
+ <p class="p">
+ The <code class="code">main</code> Item Object is always executed first (Therefore <code class="code">main</code> is both reserved and required).
+ All other Basic List Objects are not executed unless either an <code class="code">item</code> or a <code class="code">failsafe</code> specifies a valid Item name.
+ Execution of all Items is top-down.
+ </p>
+ <p class="p">
+ The <code class="code">settings</code> item Object:
+ </p>
+ <ul>
+ <li>Represents <strong>Entry</strong> settings and is not an <code class="code">item</code> that can be executed.</li>
+ <li>A number of settings are supported, but if this Item Object is not specified, then defaults are used.</li>
+ <li>
+ <div>
+ The following settings are available: <code class="code">control</code>, <code class="code">control_group</code>, <code class="code">control_mode</code>, <code class="code">control_user</code>, <code class="code">define</code>, <code class="code">mode</code>, <code class="code">parameter</code>, <code class="code">pid</code>, <code class="code">pid_file</code>, <code class="code">session</code>, <code class="code">show</code>.
+ </div>
+ <p class="p">
+ The <code class="code">control</code> setting:
+ </p>
+ <ul>
+ <li>Represents the path to the socket file in which the Controller uses to communicate over with clients such as a Control program.</li>
+ <li>A relative path is relative to the Controller <abbr title="Process Identifier">PID</abbr> directory.</li>
+ <li>An absolute path is treated exactly as the path given.</li>
+ <li>If no socket setting is specified, then no socket will be made available.</li>
+ <li>This socket file is only created once <code class="code">ready</code> mode is achieved.</li>
+ <li>Providing <code class="code">readonly</code> after the socket path instructs the Controller program not to create or delete the Socket file because the file system is assumed to be readonly.</li>
+ <li>The socket file itself must therefore already exist.</li>
+ <li>This should be possible in the cases of file systems that have pre-created a socket file at the designated path.</li>
+ <li>When <code class="code">readonly</code>, the group, mode, and user are also not processed effectively resulting in the <code class="code">control_group</code>, <code class="code">control_mode</code>, and <code class="code">control_user</code> settings being ignored.</li>
+ <li>Future versions might expand this into supporting network addresses in addition to socket files.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">control_group</code> setting:
+ </p>
+ <ul>
+ <li>Represents the group name or group ID to assign to the socket file as the group.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">control_mode</code> setting:
+ </p>
+ <ul>
+ <li>Represents the file mode assigned to the socket file.</li>
+ <li>This could either be the string version that might look like <code class="code">u+rw-x,g+r-wx,o-rwx</code> or a numeric value like <code class="code">0750</code>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">define</code> setting:
+ </p>
+ <ul>
+ <li>Use this to define an environment variable (this overwrites any existing environment variable with this name).</li>
+ <li>A define is both exported as an environment variable as well as exposed as an IKI variable.</li>
+ <li>Example IKI variable substitution: for <code class="code">define PATH /bin:/sbin</code>, the associated IKI variable would look like: <code class="code">define:"PATH"</code>.</li>
+ <li>All environment variables, including those defined using this, must be in the <code class="code">environment</code> list in any given Rule to be exported to the executed process.</li>
+ <li>Environment variables added here that are not added to the environment are still exposed as an IKI variable.</li>
+ <li>This is only expanded within any Rule operated on by this <strong>Entry</strong>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">mode</code> setting:
+ </p>
+ <ul>
+ <li>Represents the mode in which the <strong>Entry</strong> is operating in.</li>
+ <li>
+ <div>The following modes are supported: <code class="code">program</code> and <code class="code">service</code>.</div>
+ <p class="p">
+ The <code class="code">program</code> mode:
+ </p>
+ <ul>
+ <li>Designates that the <strong>Entry</strong> operates as a program and exits when complete.</li>
+ <li>Will call the <code class="code">exit</code> with the same name as this <strong>Entry</strong>, but with the extension <code class="code">exit</code>, such as <code class="code">default.exit</code>.</li>
+ <li>Supports the Item Action <code class="code">execute</code> to execute a program (switching the <code class="code">controller</code> program entirely with the executed process).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">service</code> mode:
+ </p>
+ <ul>
+ <li>Designates that the <strong>Entry</strong> operates as a service and will sit and wait for control commands when complete.</li>
+ <li>Will call the <code class="code">exit</code> with the same name as this <strong>Entry</strong>, but with the extension <code class="code">exit</code>, such as <code class="code">default.exit</code>.</li>
+ <li>Does not support the Item Action <code class="code">execute</code>.</li>
+ <li>This is the default mode.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The <code class="code">parameter</code> setting:
+ </p>
+ <ul>
+ <li>Use this to define an IKI variable name and value.</li>
+ <li>These do not conflict with environment variables and are not exposed as environment variables.</li>
+ <li>Example IKI variable substitution: for <code class="code">parameter hello world</code>, the associated IKI variable would look like: <code class="code">parameter:"hello"</code>.</li>
+ <li>This is only expanded within any Rule operated on by this <strong>Entry</strong>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">pid</code> setting:
+ </p>
+ <ul>
+ <li>Represents how the <strong>Entry</strong> <abbr title="Process Identifier">PID</abbr> file is generated or not.</li>
+ <li>The following modes are supported: <code class="code">disable</code>, <code class="code">require</code>, and <code class="code">ready</code>.</li>
+ <li>For <code class="code">disable</code>, not <abbr title="Process Identifier">PID</abbr> file representing the <strong>Entry</strong> is created.</li>
+ <li>For <code class="code">require</code>, check to see if the <abbr title="Process Identifier">PID</abbr> file exists for an <strong>Entry</strong> at startup and then when <code class="code">ready</code> create a <abbr title="Process Identifier">PID</abbr> file, display error on <abbr title="Process Identifier">PID</abbr> file already exists or on failure and then fail.</li>
+ <li>For <code class="code">ready</code>, when <code class="code">ready</code> create a <abbr title="Process Identifier">PID</abbr> file, display error on failure and then fail (does not check if <abbr title="Process Identifier">PID</abbr> file exists).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">pid_file</code> setting:
+ </p>
+ <ul>
+ <li>When <code class="code">pid</code> is not disabled this represents the path to the <abbr title="Process Identifier">PID</abbr> file.</li>
+ <li>If <code class="code">-p</code> or <code class="code">--pid</code> is passed to the controller program, then this value is ignored in favor of the value passed along the command line.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">session</code> setting:
+ </p>
+ <ul>
+ <li>Represents the default way in which child processes are executed.</li>
+ <li>This default can be overridden by individual Rules.</li>
+ <li>For <code class="code">new</code>, Execute Rule processes in a new session setting the process group to the executed process' id (making the executed process a <code class="code">controlling terminal</code>).</li>
+ <li>For <code class="code">same</code>, Execute Rule processes in the same session where the process group is set to the parent process id.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">show</code> setting:
+ </p>
+ <ul>
+ <li>Represents the way <strong>Entry</strong> processing presents information to the screen.</li>
+ <li>This applies only to the <strong>Entry</strong> and Rule processing itself and does not handle the output of programs and scripts being executed by some <strong>Entry</strong> or Rule.</li>
+ <li>The following show options are supported: <code class="code">normal</code> and <code class="code">init</code>.</li>
+ <li>For <code class="code">normal</code>, will not report the start or stop of some <strong>Entry</strong> or Rule execution but will report any errors or warnings as appropriate.</li>
+ <li>For <code class="code">init</code>, will report when starting programs and may include reporting success and failure status.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">timeout</code> setting:
+ </p>
+ <ul>
+ <li>Represents the default timeouts for the <strong>Entry</strong>.</li>
+ <li>See the <code class="code">timeout</code> Action below for details.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The <code class="code">main</code> item Object:
+ </p>
+ <ul>
+ <li>Each <code class="code">item</code> supports the following Action Names: <code class="code">consider</code>, <code class="code">execute</code>, <code class="code">failsafe</code>, <code class="code">freeze</code>, <code class="code">item</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">ready</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">timeout</code>.</li>
+ <li>Of those types, the following are considered a <code class="code">rule</code> Action: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>.</li>
+ <li>
+ <p class="p">
+ The <code class="code">consider</code> Item Action:
+ </p>
+ <ul>
+ <li>A special case of a <code class="code">rule</code> Action.</li>
+ <li>All Action Parameters are the same as with the <code class="code">rule</code> Action Parameters.</li>
+ <li>The difference is that <code class="code">consider</code> is only processed (instead of being processed and executed) and when some <code class="code">rule</code> Action designates that this consideration is required (via <code class="code">need</code>), wanted (via <code class="code">want</code>), or wished for (via <code class="code">wish</code>) from the within the Rule file.</li>
+ <li>If this is determined to be executed, then this is immediately executed when needed, wanted or wished for and applies all properties as appropriate (such as <code class="code">asynchronous</code>, for example).</li>
+ <li>If this is determined not to be executed, then this <code class="code">consider</code> is ignored as if it was never there in the first place.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">execute</code> Item Action:
+ </p>
+ <ul>
+ <li>Execute into the specified program.</li>
+ <li>On successful execution, the controller program will no longer be running and will be replaced with the designated program.</li>
+ <li>This Item Action is only supported when operating in <code class="code">program</code> mode.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">failsafe</code> Item Action:
+ </p>
+ <ul>
+ <li>Accepts only a valid Item Name in which will be executed when a failure is detected.</li>
+ <li>Only a single <code class="code">failsafe</code> Item Action may function at a time.</li>
+ <li>Each successive <code class="code">failsafe</code> Item Action specified replaces the previously defined <code class="code">failsafe</code> Item Action (in a top-down manner).</li>
+ <li>When operating in <code class="code">failsafe</code>, the <code class="code">require</code> Item Action is ignored (given that it is meaningless once operating in <code class="code">failsafe</code> mode).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">failsafe</code> Item Action:
+ </p>
+ <ul>
+ <li>Accepts only a valid Item Name in which will be executed when a failure is detected.</li>
+ <li>Only a single <code class="code">failsafe</code> Item Action may function at a time.</li>
+ <li>Each successive <code class="code">failsafe</code> Item Action specified replaces the previously defined <code class="code">failsafe</code> Item Action (in a top-down manner).</li>
+ <li>When operating in <code class="code">failsafe</code>, the <code class="code">require</code> Item Action is ignored (given that it is meaningless once operating in <code class="code">failsafe</code> mode).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">freeze</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for freezing some Control Group.</li>
+ <li>This Item Action will process the <code class="code">freeze</code> inner Content of the named Rule.</li>
+ <li>This is specific to Control Groups and is not yet fully implemented.</li>
+ <li>Once implemented this documentation will need to be updated and clarified.</li>
+ <p class="p">
+ The <code class="code">item</code> Item Action:
+ </p>
+ <ul>
+ <li>Accepts only a valid Item Name in which will be immediately executed.</li>
+ <li>Any valid Item Name, except for the reserved <code class="code">main</code>, may be used.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">kill</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for forcibly terminating some process.</li>
+ <li>This Item Action will process the <code class="code">kill</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">pause</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">pause</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">reload</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">reload</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">restart</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">restart</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">resume</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">resume</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">ready</code> Item Action:
+ </p>
+ <ul>
+ <li>Instructs the controller program when it is safe to perform normal tasks, such as creating the <abbr title="Process Identifier">PID</abbr> file.</li>
+ <li>When not specified, the state is always assumed to be ready.</li>
+ <li>For example, the controller program may be used as a full blown <code class="code">init</code> replacement and therefore may need to mount the <code class="code">/var/run/</code> directory.</li>
+ <li>If the <abbr title="Process Identifier">PID</abbr> file is created at program start, then the <code class="code">/var/run/</code>controller.pid would be written before the <code class="code">/var/run/</code> directory is ready.</li>
+ <li>This could be a problem, such as on a read-only file system the <abbr title="Process Identifier">PID</abbr> creation fails and controller bails out on error.</li>
+ <li>Adding <code class="code">ready</code> essentially specifies a point in time in the <strong>Entry</strong> in which things are expected to be safe for such basic operations.</li>
+ <li>When the optional <code class="code">wait</code> is provided, then <code class="code">ready</code> will wait for all currently started asynchronous processes to complete before operating.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">start</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">start</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">stop</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">stop</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">thaw</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for unfreezing some Control Group.</li>
+ <li>This Item Action will process the <code class="code">thaw</code> inner Content of the named Rule.</li>
+ <li>This is specific to Control Groups and is not yet fully implemented.</li>
+ <li>Once implemented this documentation will need to be updated and clarified.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">timeout</code> Item Action:
+ </p>
+ <ul>
+ <li>(This is not currently fully implemented, only <code class="code">exit</code> is implemented.)</li>
+ <li>Provides default global settings for each of the four special situations: <code class="code">exit</code>, <code class="code">kill</code>, <code class="code">start</code>, and <code class="code">stop</code>.</li>
+ <li>Each of these may only have a single one exist at a time (one <code class="code">exit</code>, one <code class="code">kill</code>, one <code class="code">start</code>, and one <code class="code">stop</code>).</li>
+ <li>Each successive <code class="code">timeout</code> Item Action, specific to each Action Name (such as <code class="code">start</code>), specified replaces the previously defined <code class="code">timeout</code> Action (in a top-down manner).</li>
+ <li>The second Content for each of these, when specified, may be a 0 or greater whole number representing the number of <em>MegaTime</em> (MT) (equivalent to milliseconds).</li>
+ <li>For <code class="code">kill</code>, this represents the number of <em>MegaTime</em> to wait after stopping some Rule and that Rule has not yet stopped to forcefully stop the Rule (aka kill the Rule).</li>
+ <li>For <code class="code">start</code>, this represents the number of <em>MegaTime</em> to wait after starting some Rule before assuming something went wrong and the Rule is returned as failed.</li>
+ <li>For <code class="code">stop</code>, this represents the number of <em>MegaTime</em> to wait after stopping some Rule before assuming something went wrong and the Rule is returned as failed.</li>
+ <li>If the second Content is not specified, then this disables the type (prevents the specified timeout action).</li>
+ <li>For <code class="code">exit</code>, this represents the number of <em>MegaTime</em> to wait when the Controller program is exiting (such as having received a terminate signal).</li>
+ <li>In this case, a terminate signal is sent to all child processes.</li>
+ <li>The <code class="code">exit</code> timeout represents the amount of time to wait after sending the terminate signal before sending a kill signal to each child process still running.</li>
+ <li>When disabled, the program will not send a kill signal will continue running until all child processes to terminate.</li>
+ <li>The <code class="code">exit</code> timeout does not get applied to any Rule.</li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </section>
+
+ <section id="documentation-rule" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Entry Rule Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ There are multiple Entry Actions that are considered <code class="code">rule</code> Actions.
+ These are: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>.
+ </p>
+ <p class="p">
+ The <code class="code">rule</code> Actions immediately execute a named Rule file.
+ </p>
+ <ul>
+ <li>
+ <p class="p">
+ The first Action Parameter represents the Rule directory, which is a relative directory path the Rule file is to be found.
+ </p>
+ <ul>
+ <li>Do not include leading or trailing slashes.</li>
+ <li>This is relative to the settings rules directory.</li>
+ </ul>
+ </li>
+ <li>
+ <p class="p">
+ The second Action Parameter represents the base name for the Rule file, without the file extension.
+ </p>
+ <ul>
+ <li>This must not have any directory paths.</li>
+ </ul>
+ </li>
+ <li>
+ <p class="p">
+ The remaining Action Parameters may be specified in any order\:
+ </p>
+ <ul>
+ <li><code class="code">asynchronous</code>: Designates that execution will not block (wait).</li>
+ <li><code class="code">require</code>: Designates that this Rule must succeed or trigger execution of failsafe.</li>
+ <li><code class="code">wait</code>: Designates that this Rule will not execute until all other Actions before this (including <code class="code">asynchronous</code> ones) finish executing (in a top-down manner).</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The full path to the <code class="code">rule</code> is relative to the settings, such that if the controller Rule settings are found in <code class="code">/etc/controller/rules/</code>, then for a directory called <code class="code">[directory]</code> and a Rule base name of <code class="code">[base_name]</code>, the resulting path would be: <code class="code">/etc/controller/rules/[directory]/[base_name].rule</code>.
+ </p>
+ <p class="p">
+ It is important to note that for any given <code class="code">rule</code>, execution within that <code class="code">rule</code> may be internally asynchronous (even if the <code class="code">rule</code> is synchronous).
+ For example, a service that is often called a daemon will execute in the background.
+ Until that execution succeeds and the daemon goes into the background the representing Rule will block.
+ After the daemon goes into the background, then the representing Rule will no longer block and be fully executed.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller - Specification - Exit</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller program <strong>Exit</strong> specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Controller, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/controller/specifications/exit.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/controller/specifications.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/action.html" class="nav-text link">Action</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/controller/specifications/exit.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Controller <strong>Exit</strong> Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong>Exit</strong> files follow the <code class="code">FSS-0005 (Somewhat Basic List)</code> format.
+ </p>
+ <p class="p">
+ An <strong>Exit</strong> file name is expected to have the file extension <code class="code">.exit</code>.
+ </p>
+ <p class="p">
+ For each <strong>Exit</strong> file:
+ </p>
+ <ul>
+ <li>The outer most part is a <code class="code">FSS-0002 (Basic List)</code>.</li>
+ <li>The <em>Basic List Object</em> is considered the <code class="code">Item</code>.</li>
+ <li>The <em>Basic List Content</em> are considered the <code class="code">Actions</code>.</li>
+ <li>The <em>Actions</em> are <code class="code">FSS-0001 (Extended)</code>.</li>
+ <li>Each <em>Action Object</em> is the <code class="code">Action Name</code>.</li>
+ <li>Each <em>Action Content</em> are the <code class="code">Action Parameters</code>.</li>
+ </ul>
+ <p class="p">
+ The <strong>Items</strong>:
+ </p>
+ <ul>
+ <li><code class="code">main</code>: required.</li>
+ <li>
+ <code class="code">settings</code>: optional, Actions may be one of:
+ <ul>
+ <li>
+ <div><code class="code">control</code>: One to two Content.</div>
+ <ul>
+ <li>The first Content is a relative or absolute path to a socket file.</li>
+ <li>The second Content an optional <code class="code">readonly</code>.</li>
+ </ul>
+ </li>
+ <li><code class="code">pid</code>: Exactly one Content that is one of <code class="code">disable</code>, <code class="code">require</code>, or <code class="code">ready</code>.</li>
+ <li><code class="code">session</code>: Exactly one Content that is one of <code class="code">new</code> or <code class="code">same</code>.</li>
+ <li><code class="code">show</code>: Exactly one Content that is one of <code class="code">normal</code> or <code class="code">init</code>.</li>
+ <li><code class="code">timeout</code>: One or Two content with the first being one of <code class="code">exit</code>, <code class="code">start</code>, <code class="code">stop</code>, or <code class="code">kill</code> and the (optional) second Content being a positive whole number or 0.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The <strong>Exit</strong> file may have any other valid Item Objects, but only the above are reserved.
+ </p>
+ <p class="p">
+ The Actions:
+ </p>
+ <ul>
+ <li>
+ <div><code class="code">consider</code>: One or more Content.</div>
+ <ul>
+ <li>The first Content is the relative file path (without any leading/trailing slashes and without file extension).</li>
+ <li>The second Content is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">failsafe</code>: One Content that is a valid Object name, except for the reserved <code class="code">main</code>.</div>
+ </li>
+ <li>
+ <div><code class="code">freeze</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">item</code>: One Content that is a valid Object name, except for the reserved <code class="code">main</code>.</div>
+ </li>
+ <li>
+ <div><code class="code">kill</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">pause</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">ready</code>: Zero or One Content.</div>
+ <ul>
+ <li>
+ <div>The first may only be one of:</div>
+ <ul>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">reload</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">restart</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">resume</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">start</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">stop</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">thaw</code>: Two or more Content.</div>
+ <ul>
+ <li>The first Content that is the relative directory path (without any leading/trailing slashes).</li>
+ <li>The second Content that is the basename for a rule file.</li>
+ <li>
+ <div>The third and beyond may only be one of:</div>
+ <ul>
+ <li>asynchronous</li>
+ <li>require</li>
+ <li>wait</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">timeout</code>: One or two Content.</div>
+ <ul>
+ <li>
+ <div>The first being one of:</div>
+ <ul>
+ <li>exit</li>
+ <li>start</li>
+ <li>stop</li>
+ <li>kill</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>The (optional) second Content being a positive whole number or 0.</li>
+ </ul>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Exit Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ This describes the intent and purpose of an <strong>Exit</strong> file.
+ </p>
+ <p class="p">
+ An <strong>Exit</strong> file, such as <code class="code">default.exit</code>, is intended to store a set of rules in which the controller will process on execution.
+ These are used to run some set of commands, such as shutting down a system.
+ </p>
+ <p class="p">
+ An <strong>Exit</strong> is a special variation or subset of an <strong>Entry</strong>.
+ </p>
+ <p class="p">
+ The <code class="code">settings</code> item Object:
+ </p>
+ <ul>
+ <li>Represents <strong>Exit</strong> settings and is not an <code class="code">item</code> that can be executed.</li>
+ <li>A number of settings are supported, but if this Item Object is not specified, then defaults are used.</li>
+ <li>
+ <div>
+ The following settings are available: <code class="code">pid</code> and <code class="code">show</code>.
+ </div>
+ <p class="p">
+ The <code class="code">define</code> setting:
+ </p>
+ <ul>
+ <li>Use this to define an environment variable (this overwrites any existing environment variable with this name).</li>
+ <li>A define is both exported as an environment variable as well as exposed as an IKI variable.</li>
+ <li>Example IKI variable substitution: for <code class="code">define PATH /bin:/sbin</code>, the associated IKI variable would look like: <code class="code">define:"PATH"</code>.</li>
+ <li>All environment variables, including those defined using this, must be in the <code class="code">environment</code> list in any given Rule to be exported to the executed process.</li>
+ <li>Environment variables added here that are not added to the environment are still exposed as an IKI variable.</li>
+ <li>This is only expanded within any Rule operated on by this <strong>Exit</strong>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">mode</code> setting:
+ </p>
+ <ul>
+ <li>Represents the mode in which the <strong>Exit</strong> is operating in.</li>
+ <li>
+ <div>The following modes are supported: <code class="code">program</code> and <code class="code">service</code>.</div>
+ <p class="p">
+ The <code class="code">program</code> mode:
+ </p>
+ <ul>
+ <li>Designates that the <strong>Exit</strong> operates as a program and exits when complete.</li>
+ <li>Will call the <code class="code">exit</code> with the same name as this <strong>Exit</strong>, but with the extension <code class="code">exit</code>, such as <code class="code">default.exit</code>.</li>
+ <li>Supports the Item Action <code class="code">execute</code> to execute a program (switching the <code class="code">controller</code> program entirely with the executed process).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">service</code> mode:
+ </p>
+ <ul>
+ <li>Designates that the <strong>Exit</strong> operates as a service and will sit and wait for control commands when complete.</li>
+ <li>Will call the <code class="code">exit</code> with the same name as this <strong>Exit</strong>, but with the extension <code class="code">exit</code>, such as <code class="code">default.exit</code>.</li>
+ <li>Does not support the Item Action <code class="code">execute</code>.</li>
+ <li>This is the default mode.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The <code class="code">parameter</code> setting:
+ </p>
+ <ul>
+ <li>Use this to define an IKI variable name and value.</li>
+ <li>These do not conflict with environment variables and are not exposed as environment variables.</li>
+ <li>Example IKI variable substitution: for <code class="code">parameter hello world</code>, the associated IKI variable would look like: <code class="code">parameter:"hello"</code>.</li>
+ <li>This is only expanded within any Rule operated on by this <strong>Exit</strong>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">pid</code> setting:
+ </p>
+ <ul>
+ <li>Represents how the <strong>Exit</strong> <abbr title="Process Identifier">PID</abbr> file is generated or not.</li>
+ <li>The following modes are supported: <code class="code">disable</code>, <code class="code">require</code>, and <code class="code">ready</code>.</li>
+ <li>For <code class="code">disable</code>, not <abbr title="Process Identifier">PID</abbr> file representing the <strong>Exit</strong> is created.</li>
+ <li>For <code class="code">require</code>, check to see if the <abbr title="Process Identifier">PID</abbr> file exists for an <strong>Exit</strong> at startup and then when <code class="code">ready</code> create a <abbr title="Process Identifier">PID</abbr> file, display error on <abbr title="Process Identifier">PID</abbr> file already exists or on failure and then fail.</li>
+ <li>For <code class="code">ready</code>, when <code class="code">ready</code> create a <abbr title="Process Identifier">PID</abbr> file, display error on failure and then fail (does not check if <abbr title="Process Identifier">PID</abbr> file exists).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">show</code> setting:
+ </p>
+ <ul>
+ <li>Represents the way <strong>Exit</strong> processing presents information to the screen.</li>
+ <li>This applies only to the <strong>Exit</strong> and Rule processing itself and does not handle the output of programs and scripts being executed by some <strong>Exit</strong> or Rule.</li>
+ <li>The following show options are supported: <code class="code">normal</code> and <code class="code">init</code>.</li>
+ <li>For <code class="code">normal</code>, will not report the start or stop of some <strong>Exit</strong> or Rule execution but will report any errors or warnings as appropriate.</li>
+ <li>For <code class="code">init</code>, will report when starting programs and may include reporting success and failure status.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">timeout</code> setting:
+ </p>
+ <ul>
+ <li>Represents the default timeouts for the <strong>Exit</strong>.</li>
+ <li>See the <code class="code">timeout</code> Action below for details.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The <code class="code">main</code> item Object:
+ </p>
+ <ul>
+ <li>Each <code class="code">item</code> supports the following Action Names: <code class="code">consider</code>, <code class="code">execute</code>, <code class="code">failsafe</code>, <code class="code">freeze</code>, <code class="code">item</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">ready</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">timeout</code>.</li>
+ <li>Of those types, the following are considered a <code class="code">rule</code> Action: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>.</li>
+ <li>
+ <p class="p">
+ The <code class="code">consider</code> Item Action:
+ </p>
+ <ul>
+ <li>A special case of a <code class="code">rule</code> Action.</li>
+ <li>All Action Parameters are the same as with the <code class="code">rule</code> Action Parameters.</li>
+ <li>The difference is that <code class="code">consider</code> is only processed (instead of being processed and executed) and when some <code class="code">rule</code> Action designates that this consideration is required (via <code class="code">need</code>), wanted (via <code class="code">want</code>), or wished for (via <code class="code">wish</code>) from the within the Rule file.</li>
+ <li>If this is determined to be executed, then this is immediately executed when needed, wanted or wished for and applies all properties as appropriate (such as <code class="code">asynchronous</code>, for example).</li>
+ <li>If this is determined not to be executed, then this <code class="code">consider</code> is ignored as if it was never there in the first place.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">execute</code> Item Action:
+ </p>
+ <ul>
+ <li>Execute into the specified program.</li>
+ <li>On successful execution, the controller program will no longer be running and will be replaced with the designated program.</li>
+ <li>This Item Action is only supported when operating in <code class="code">program</code> mode.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">failsafe</code> Item Action:
+ </p>
+ <ul>
+ <li>Accepts only a valid Item Name in which will be executed when a failure is detected.</li>
+ <li>Only a single <code class="code">failsafe</code> Item Action may function at a time.</li>
+ <li>Each successive <code class="code">failsafe</code> Item Action specified replaces the previously defined <code class="code">failsafe</code> Item Action (in a top-down manner).</li>
+ <li>When operating in <code class="code">failsafe</code>, the <code class="code">require</code> Item Action is ignored (given that it is meaningless once operating in <code class="code">failsafe</code> mode).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">failsafe</code> Item Action:
+ </p>
+ <ul>
+ <li>Accepts only a valid Item Name in which will be executed when a failure is detected.</li>
+ <li>Only a single <code class="code">failsafe</code> Item Action may function at a time.</li>
+ <li>Each successive <code class="code">failsafe</code> Item Action specified replaces the previously defined <code class="code">failsafe</code> Item Action (in a top-down manner).</li>
+ <li>When operating in <code class="code">failsafe</code>, the <code class="code">require</code> Item Action is ignored (given that it is meaningless once operating in <code class="code">failsafe</code> mode).</li>
+ </ul>
+ <p class="p">
+ The <code class="code">freeze</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for freezing some Control Group.</li>
+ <li>This Item Action will process the <code class="code">freeze</code> inner Content of the named Rule.</li>
+ <li>This is specific to Control Groups and is not yet fully implemented.</li>
+ <li>Once implemented this documentation will need to be updated and clarified.</li>
+ <p class="p">
+ The <code class="code">item</code> Item Action:
+ </p>
+ <ul>
+ <li>Accepts only a valid Item Name in which will be immediately executed.</li>
+ <li>Any valid Item Name, except for the reserved <code class="code">main</code>, may be used.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">kill</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for forcibly terminating some process.</li>
+ <li>This Item Action will process the <code class="code">kill</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">pause</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">pause</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">reload</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">reload</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">restart</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">restart</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">resume</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">resume</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">ready</code> Item Action:
+ </p>
+ <ul>
+ <li>Instructs the controller program when it is safe to perform normal tasks, such as creating the <abbr title="Process Identifier">PID</abbr> file.</li>
+ <li>When not specified, the state is always assumed to be ready.</li>
+ <li>For example, the controller program may be used as a full blown <code class="code">init</code> replacement and therefore may need to mount the <code class="code">/var/run/</code> directory.</li>
+ <li>If the <abbr title="Process Identifier">PID</abbr> file is created at program start, then the <code class="code">/var/run/</code>controller.pid would be written before the <code class="code">/var/run/</code> directory is ready.</li>
+ <li>This could be a problem, such as on a read-only file system the <abbr title="Process Identifier">PID</abbr> creation fails and controller bails out on error.</li>
+ <li>Adding <code class="code">ready</code> essentially specifies a point in time in the <strong>Exit</strong> in which things are expected to be safe for such basic operations.</li>
+ <li>When the optional <code class="code">wait</code> is provided, then <code class="code">ready</code> will wait for all currently started asynchronous processes to complete before operating.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">start</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">start</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">stop</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for pausing some process.</li>
+ <li>This Item Action will process the <code class="code">stop</code> inner Content of the named Rule.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">thaw</code> Item Action:
+ </p>
+ <ul>
+ <li>A <code class="code">rule</code> Action for unfreezing some Control Group.</li>
+ <li>This Item Action will process the <code class="code">thaw</code> inner Content of the named Rule.</li>
+ <li>This is specific to Control Groups and is not yet fully implemented.</li>
+ <li>Once implemented this documentation will need to be updated and clarified.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">timeout</code> Item Action:
+ </p>
+ <ul>
+ <li>(This is not currently fully implemented, only <code class="code">exit</code> is implemented.)</li>
+ <li>Provides default global settings for each of the four special situations: <code class="code">exit</code>, <code class="code">kill</code>, <code class="code">start</code>, and <code class="code">stop</code>.</li>
+ <li>Each of these may only have a single one exist at a time (one <code class="code">exit</code>, one <code class="code">kill</code>, one <code class="code">start</code>, and one <code class="code">stop</code>).</li>
+ <li>Each successive <code class="code">timeout</code> Item Action, specific to each Action Name (such as <code class="code">start</code>), specified replaces the previously defined <code class="code">timeout</code> Action (in a top-down manner).</li>
+ <li>The second Content for each of these, when specified, may be a 0 or greater whole number representing the number of <em>MegaTime</em> (MT) (equivalent to milliseconds).</li>
+ <li>For <code class="code">kill</code>, this represents the number of <em>MegaTime</em> to wait after stopping some Rule and that Rule has not yet stopped to forcefully stop the Rule (aka kill the Rule).</li>
+ <li>For <code class="code">start</code>, this represents the number of <em>MegaTime</em> to wait after starting some Rule before assuming something went wrong and the Rule is returned as failed.</li>
+ <li>For <code class="code">stop</code>, this represents the number of <em>MegaTime</em> to wait after stopping some Rule before assuming something went wrong and the Rule is returned as failed.</li>
+ <li>If the second Content is not specified, then this disables the type (prevents the specified timeout action).</li>
+ <li>For <code class="code">exit</code>, this represents the number of <em>MegaTime</em> to wait when the Controller program is exiting (such as having received a terminate signal).</li>
+ <li>In this case, a terminate signal is sent to all child processes.</li>
+ <li>The <code class="code">exit</code> timeout represents the amount of time to wait after sending the terminate signal before sending a kill signal to each child process still running.</li>
+ <li>When disabled, the program will not send a kill signal will continue running until all child processes to terminate.</li>
+ <li>The <code class="code">exit</code> timeout does not get applied to any Rule.</li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </section>
+
+ <section id="documentation-rule" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Exit Rule Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ There are multiple Exit Actions that are considered <code class="code">rule</code> Actions.
+ These are: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>.
+ </p>
+ <p class="p">
+ The <code class="code">rule</code> Actions immediately execute a named Rule file.
+ </p>
+ <ul>
+ <li>
+ <p class="p">
+ The first Action Parameter represents the Rule directory, which is a relative directory path the Rule file is to be found.
+ </p>
+ <ul>
+ <li>Do not include leading or trailing slashes.</li>
+ <li>This is relative to the settings rules directory.</li>
+ </ul>
+ </li>
+ <li>
+ <p class="p">
+ The second Action Parameter represents the base name for the Rule file, without the file extension.
+ </p>
+ <ul>
+ <li>This must not have any directory paths.</li>
+ </ul>
+ </li>
+ <li>
+ <p class="p">
+ The remaining Action Parameters may be specified in any order\:
+ </p>
+ <ul>
+ <li><code class="code">asynchronous</code>: Designates that execution will not block (wait).</li>
+ <li><code class="code">require</code>: Designates that this Rule must succeed or trigger execution of failsafe.</li>
+ <li><code class="code">wait</code>: Designates that this Rule will not execute until all other Actions before this (including <code class="code">asynchronous</code> ones) finish executing (in a top-down manner).</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The full path to the <code class="code">rule</code> is relative to the settings, such that if the controller Rule settings are found in <code class="code">/etc/controller/rules/</code>, then for a directory called <code class="code">[directory]</code> and a Rule base name of <code class="code">[base_name]</code>, the resulting path would be: <code class="code">/etc/controller/rules/[directory]/[base_name].rule</code>.
+ </p>
+ <p class="p">
+ It is important to note that for any given <code class="code">rule</code>, execution within that <code class="code">rule</code> may be internally asynchronous (even if the <code class="code">rule</code> is synchronous).
+ For example, a service that is often called a daemon will execute in the background.
+ Until that execution succeeds and the daemon goes into the background the representing Rule will block.
+ After the daemon goes into the background, then the representing Rule will no longer block and be fully executed.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller - Specification - Packet</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller program Packet specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Controller, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/controller/specifications/packet.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/controller/specifications.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/action.html" class="nav-text link">Action</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/controller/specifications/packet.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Controller Packet Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong>controller</strong> program communicates use the <code class="code">FSS-000F (Packet)</code>.
+ </p>
+ <p class="p">
+ This specification declares how the Payload Block, which is in <code class="code">FSS-000E (Payload)</code> format, is required to be used.
+ </p>
+ <p class="p">
+ Only a single <code class="code">header</code> is allowed.
+ </p>
+ <p class="p">
+ Only a single <code class="code">payload</code> is allowed.
+ </p>
+ <p class="p">
+ Packet Structure:
+ </p>
+ <ul>
+ <li>
+ <p class="p">
+ Packet is grouped into the following blocks:
+ </p>
+ <ul>
+ <li><code class="code">control</code>: A single 1-byte block representing control codes.</li>
+ <li><code class="code">size</code>: A single 4-byte block representing the size of the entire packet, including the control block.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ The <code class="code">header</code> Object contains the following <code class="code">FSS-0001 (Extended Object)</code> (depending on <code class="code">type</code>):
+ </p>
+ <ul>
+ <li><code class="code">action</code>: A valid action type: <code class="code">freeze</code>, <code class="code">kexec</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reboot</code>, <code class="code">reload</code>, <code class="code">rerun</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">shutdown</code>, <code class="code">start</code>, <code class="code">stop</code>, or <code class="code">thaw</code>.</li>
+ <li><code class="code">length</code>: A positive whole number inclusively between 0 and 4294965248 representing the length of the <code class="code">payload</code> (may be in binary, octal, decimal, duodecimal, or hexidecimal).</li>
+ <li><code class="code">status</code>: The status code name or number representing an <abbr title="Featureless Settings Specifications">FSS</abbr> status code, such as <code class="code">F_none</code>, <code class="code">F_failure</code>, or <code class="code">200</code> (where a number may have error and warning bits and may be in binary, octal, decimal, duodecimal, or hexidecimal).</li>
+ <li><code class="code">type</code>: The packet type that is one of <code class="code">controller</code>, <code class="code">error</code>, or <code class="code">init</code>.</li>
+ </ul>
+ <p class="p">
+ When there are multiple Objects of the same name inside the <code class="code">header</code>:
+ </p>
+ <ul>
+ <li><code class="code">action</code>: The order represents the order in which the actions are performed..</li>
+ <li><code class="code">length</code>: There may only be one length Object, all others after the first are ignored (may be in binary, octal, decimal, duodecimal, or hexidecimal).</li>
+ <li><code class="code">status</code>: A status for each action, in the same order as the order of the action, such as F_none, F_failure, or 200 (where a number may have error and warning bits and may be in binary, octal, decimal, duodecimal, or hexidecimal).</li>
+ <li><code class="code">type</code>: The first represent the type and all others represents a sub-type.</li>
+ </ul>
+ <p class="p">
+ There are different headers and payload properties based on the <code class="code">type</code>.
+ </p>
+ <p class="p">
+ The <code class="code">controller</code> type:
+ </p>
+ <ul>
+ <li>Supports the following headers: <code class="code">action</code>, <code class="code">length</code>, <code class="code">status</code>, and <code class="code">type</code>.</li>
+ <li>Only a single <code class="code">action</code> may be provided and must exist for request and response packets.</li>
+ <li>Only a single <code class="code">status</code> may be provided and must exist for response packets.</li>
+ <li>The <code class="code">payload</code> is dependent on the <code class="code">action</code>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">error</code> type:
+ </p>
+ <ul>
+ <li>Supports the following headers: <code class="code">length</code>, <code class="code">status</code>, and <code class="code">type</code>.</li>
+ <li>Only a single <code class="code">status</code> may be provided and must exist for request and response packets.</li>
+ <li>The <code class="code">payload</code> is a NULL terminated string whose length is defined by the <code class="code">length</code> <code class="code">header</code> Content.</li>
+ </ul>
+ <p class="p">
+ There are different headers and payload properties based on the <code class="code">type</code>.
+ </p>
+ <p class="p">
+ The <code class="code">init</code> type:
+ </p>
+ <ul>
+ <li>Supports the following headers: <code class="code">action</code>, <code class="code">length</code>, <code class="code">status</code>, and <code class="code">type</code>.</li>
+ <li>Only a single <code class="code">action</code> may be provided and must exist for request and response packets.</li>
+ <li>Only a single <code class="code">status</code> may be provided and must exist for response packets.</li>
+ <li>The <code class="code">payload</code> is dependent on the <code class="code">action</code>.</li>
+ </ul>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Packet Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ Describes how a packet is designed and intended to be used.
+ </p>
+ <p class="p">
+ The <code class="code">packet</code> is the general category in which multiple types of packets belong.
+ This describes the different packets based on their <code class="code">type</code>.
+ </p>
+ <p class="p">
+ Each packet begins with a control block and a size block followed by a payload block.
+ </p>
+ <p class="p">
+ The <code class="code">control</code> block:
+ </p>
+ <ul>
+ <li>The leading bit (starting from the left) designates the the format of the payload, which is 0 for string and 1 for binary.</li>
+ <li>The second bit (starting from the left) designates the the byte order for the rest of the packet, which 0 is for little endian and 1 is for big endian.</li>
+ <li>The remaining 6-bits are reserved for future use.</li>
+ <li>
+ <p class="p">
+ The size block:
+ </p>
+ <ul>
+ <li>The size block represents the size of the entire packet (the control block, the size blocks, and the payload block).</li>
+ <li>This number is a single 32-bit unsigned integer.</li>
+ </ul>
+ </li>
+ <li>
+ <p class="p">
+ Example packet structure:
+ </p>
+ <pre class="preserve">[ Control Block ] [ Size Block ] [ Payload Block ]
+[ 0b10000000 ] [ 0b00000000 0b00000000 0b00000100 0b11010010 ] [ size: 1229 (1234 - 5) ]</pre>
+ </li>
+ <li>
+ <p class="p">
+ The payload block:
+ </p>
+ <p class="p">
+ This block is represented by the <code class="code">FSS-000E</code> payload specification and its structure ad use is described in the next sections.
+ </p>
+ <p class="p">
+ The following types of payload are received or sent:
+ </p>
+ <ol>
+ <li>controller payload.</li>
+ <li>error payload.</li>
+ <li>init payload.</li>
+ </ol>
+ </li>
+ </ul>
+ <p class="p">
+ The <strong>controller</strong> payload:
+ </p>
+ <ul>
+ <li>Commands being sent to the <strong>controller</strong> and their respective responses utilize a <strong>controller</strong> payload.</li>
+ <li>These are pre-defined commands to rules or the <strong>controller</strong> program itself.</li>
+ <li>Commands such as starting or stopping some rule, for example.</li>
+ <li>
+ <div>A <strong>controller</strong> payload is also sent in response to a <strong>controller</strong> payload request to represent a success.</div>
+ <ul>
+ <li>The <code class="code">now</code> condition designates that the kexec, reboot, or shutdown is to begin immediately.</li>
+ <li>The <code class="code">at</code> condition designates that the kexec, reboot, or shutdown is to begin once a specific date and time is reached by the system clock.</li>
+ <li>The <code class="code">in</code> condition designates that the kexec, reboot, or shutdown is to begin once a specific amount of time is passed by the system clock since the execution of this command started.</li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ For these <code class="code">time</code> conditions, different units of time should be supported, such as <code class="code">seconds</code>, <code class="code">days</code>, <code class="code">years</code> as standard time, Time, or UNIX Time (Epoch Time).
+ </p>
+ <p class="p">
+ The normal <code class="code">controller</code> payload commands are any valid Rule Action that performs some action.
+ This does not include Actions that provide some setting or configuration (such as <code class="code">with_pid</code>).
+ Some of the supported commands are: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">rerun</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, or <code class="code">thaw</code>.
+ Multiple commands may be sent multiple <code class="code">action</code> headers.
+ The <code class="code">action</code> headers are order sensitive, executing from top to bottom, and one does not start until the previous successfully completes.
+ </p>
+ <p class="p">
+ Multiple <code class="code">status</code> headers may exist in the response so long as they each match an <code class="code">action</code> in the request.
+ </p>
+ <p class="p">
+ The <code class="code">payload</code> is expected to be empty and have a length of 0 for a request.
+ The <code class="code">payload</code> may have an <code class="code">FSS-0000 (Basic)</code> format containing a single Object <code class="code">message</code> to represent a message associated with an action.
+ Multiple <code class="code">message</code> may exist in the response so long as they each match an <code class="code">action</code> in the request.
+ </p>
+ <p class="p">
+ The <strong>error</strong> payload:
+ </p>
+ <ul>
+ <li>The error payload is intended to communicate some sort of failure.</li>
+ <li>The error payload is only sent in response to some request (and not in response to another response).</li>
+ <li>The control (the client) is not expected to send error payloads and the controller (the service) should send an error in response to an error payload or ignore it entirely.</li>
+ <li>The <code class="code">status</code> from the <code class="code">header</code> designates the status code as either a status code name string or a status code number (where a number may have error and warning bits).</li>
+ <li>The <code class="code">payload</code> will contain a NULL terminated string representing the message used to describe the error.</li>
+ </ul>
+ <p class="p">
+ The <strong>init</strong> payload:
+ </p>
+ <ul>
+ <li>The init payload is intended exclusively for the <code class="code">init</code> operation mode and is expected to only be available when running as <code class="code">init</code>.</li>
+ <li>This is used to provide special actions, namely <code class="code">kexec</code>, <code class="code">reboot</code>, and <code class="code">shutdown</code>.</li>
+
+ <li>The <code class="code">kexec</code> is for booting into another kernel, which may effectively be the same as a <code class="code">reboot</code> (<code class="code">kexec</code> is currently neither supported nor implemented).</li>
+ <li>The <code class="code">reboot</code> is for rebooting the machine (currently not implemented).</li>
+ <li>The <code class="code">shutdown</code> is for shutting down the machine (currently not implemented).</li>
+ <li>These three commands are configurable to fire off based on conditions.</li>
+ </ul>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller - Specification - Rule</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller program Rule specification.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Controller, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/controller/specifications/rule.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block unlink">
+ <div class="nav-text notice">Specifications</div>
+ <a href="documentation/controller/specifications.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/action.html" class="nav-text link">Action</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ </div>
+ <div class="nav-item highlight block">
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/controller/specifications/rule.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/controller/specifications/rule.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Controller Rule Specification</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The Rule files follow the <code class="code">FSS-000D (Basic Rule)</code> format with <code class="code">IKI-0000 (Unrestricted)</code>.
+ </p>
+ <p class="p">
+ A Rule file name is expected to have the file extension <code class="code">.rule</code>.
+ </p>
+ <p class="p">
+ For each Rule file:
+ </p>
+ <ul>
+ <li>The outer most part is a <code class="code">FSS-0002 (Basic List)</code>.</li>
+ <li>The outer most part is a <code class="code">FSS-0002 (Basic List)</code>.</li>
+ <li>The Basic List Object is considered the <em>Rule Type</em>.</li>
+ <li>The Basic List Content is determined by the specific <em>Rule Type</em>.</li>
+ <li>The Content for each <em>Rule Type</em> is called the <em>Item</em>.</li>
+ <li>Each Item Object is the <em>Item Name</em>.</li>
+ <li>Each Item Content is either the <em>Action</em> or the <em>Setting</em>.</li>
+ <li>Each Action Object is the <em>Action Name</em>.</li>
+ <li>Each Action Content are the <em>Action Parameters</em>.</li>
+ <li>Each Setting Object is the <em>Setting Name</em>.</li>
+ <li>Each Setting Content are the <em>Setting Values</em>.</li>
+ </ul>
+ <p class="p">
+ The Rule Types:
+ </p>
+ <ul>
+ <li><code class="code">command</code>: Follows either <code class="code">FSS-0003 (Extended List)</code> or <code class="code">FSS-0001 (Extended)</code>.</li>
+ <li><code class="code">script</code>: Follows either <code class="code">FSS-0003 (Extended List)</code> or <code class="code">FSS-0001 (Extended)</code>.</li>
+ <li><code class="code">service</code>: Follows either <code class="code">FSS-0003 (Extended List)</code> or <code class="code">FSS-0001 (Extended)</code>.</li>
+ <li><code class="code">settings</code>: Is required and follows either <code class="code">FSS-0001 (Extended)</code>.</li>
+ <li><code class="code">utility</code>: Follows either <code class="code">FSS-0003 (Extended List)</code> or <code class="code">FSS-0001 (Extended)</code>.</li>
+ </ul>
+ <p class="p">
+ For the above Rule Types, <code class="code">settings</code> may be specified only once whereas the others may be specifed multiple times.
+ </p>
+ <p class="p">
+ The <code class="code">settings</code> Rule Type is always processed first, regardless of position.
+ </p>
+ <p class="p">
+ The other Rule Types are processed top-down.
+ </p>
+ <p class="p">
+ The <code class="code">settings</code> Rule Type has the following <code class="code">FSS-0001 (Extended)</code>:
+ </p>
+ <ul>
+ <li><code class="code">affinity</code>: One or more Content, each must be a 0 or greater whole number.</li>
+ <li><code class="code">capability</code>: One Content representing capabilities.</li>
+ <li><code class="code">cgroup</code>: Two or more Content, the first Content being either <code class="code">existing</code> or <code class="code">new</code> and the remaining representing a valid cgroup (control group) name, must have at least 1 graph character (non white space printing character) (leading and trailing white space are trimmed off).</li>
+ <li><code class="code">define</code>: Two Content, the first Content must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits).</li>
+ <li><code class="code">engine</code>: One or more Content representing a valid program name or path (such as <code class="code">bash</code> or <code class="code">/bin/bash</code>) and any optional arguments.</li>
+ <li><code class="code">environment</code>: Zero or more Content, each must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits).</li>
+ <li><code class="code">group</code>: One or more Content representing group names or group ids.</li>
+ <li><code class="code">limit</code>: Three Content, with the first representing a valid resource type and the second and third being a valid resource limit number (positive whole number or 0).</li>
+ <li><code class="code">name</code>: One Content, must have at least 1 graph character (non white space printing character) (leading and trailing white space are trimmed off).</li>
+ <li><code class="code">nice</code>: One Content, must be a valid number for process <em>niceness</em> (Any whole number inclusively between -20 to 19).</li>
+ <li><code class="code">on</code>: Four Content, the first being a Rule Action, the second being <code class="code">need</code>, <code class="code">want</code>, or <code class="code">wish</code>, the third being a partial path, and the fourth being a Rule file name without <code class="code">.rule</code> extension.</li>
+ <li><code class="code">parameter</code>: Two Content, the first Content must be a case-sensitive valid IKI name and the second being an IKI value.</li>
+ <li><code class="code">path</code>: One Content representing a valid PATH environment string (such as <code class="code">/bin:/sbin:/usr/bin</code>).</li>
+ <li><code class="code">scheduler</code>: One or two Content representing a scheduler name and the optional numeric priority (Any whole number inclusively between 0 and 99).</li>
+ <li><code class="code">timeout</code>: One or two content with the first being one of <code class="code">exit</code>, <code class="code">start</code>, <code class="code">stop</code>, or <code class="code">kill</code> and the (optional) second Content being a positive whole number or 0.</li>
+ <li><code class="code">user</code>: One Content representing a user name or user id.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">command</code> and <code class="code">script</code> Rule Types allow the following the <code class="code">FSS-0001 (Extended)</code>:
+ </p>
+ <ul>
+ <li><code class="code">freeze</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">kill</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">pause</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">reload</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">rerun</code>: Two or more Content representing a Rule type that executes and its properties.</li>
+ <li><code class="code">restart</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">resume</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">start</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">stop</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">thaw</code>: One or more Content representing a program being executed and its arguments.</li>
+ <li><code class="code">with</code>: One or more Content representing special options for the Rule Type.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">service</code> and <code class="code">utility</code> Rule Types allow the following the <code class="code">FSS-0001 (Extended)</code>:
+ </p>
+ <ul>
+ <li><code class="code">pid_file</code>: One Content representing the path to a <abbr title="Process Identifier"><abbr title="Process Identifier">PID</abbr></abbr> file.</li>
+ <li><code class="code">rerun</code>: Two or more Content representing a Rule type that executes and its properties.</li>
+ <li><code class="code">with</code>: One or more Content being one of <code class="code">full_path</code>, <code class="code">session_new</code>, or <code class="code">session_same</code>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">command</code> and <code class="code">service</code> Rule Types allow the following the <code class="code">FSS-0003 (Extended List)</code>:
+ </p>
+ <ul>
+ <li><code class="code">freeze</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">kill</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">pause</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">reload</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">restart</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">resume</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">start</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">stop</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ <li><code class="code">thaw</code>: A list repesenting multiple programs and their respective arguments to execute.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">script</code> and <code class="code">utility</code> Rule Types allow the following the <code class="code">FSS-0003 (Extended List)</code>:
+ </p>
+ <ul>
+ <li><code class="code">freeze</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">kill</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">pause</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">reload</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">restart</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">resume</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">start</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">stop</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ <li><code class="code">thaw</code>: A list repesenting the contents of a script, such as a GNU Bash shell.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">rerun</code> Rule Type Content has the following structure.
+ </p>
+ <ul>
+ <li>The first Content represents one of: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, or <code class="code">thaw</code>.</li>
+ <li>The second Content represents one of: <code class="code">success</code> or <code class="code">failure</code>.</li>
+ <li>The third and more Content represents one of: <code class="code">delay</code>, <code class="code">max</code>, or <code class="code">reset</code>.</li>
+ <li>Where <code class="code">delay</code> and <code class="code">max</code> must be followed by a positive number or the number 0.</li>
+ </ul>
+ </div>
+
+ <section id="documentation" class="section sub separate">
+ <header class="section-header header">
+ <h2 class="section-title h h2">Rule Documentation</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ This describes the intent and purpose of a Rule file.
+ </p>
+ <p class="p">
+ A Rule file, such as <code class="code">ssh.rule</code>, is intended to designate what to execute.
+ </p>
+ <p class="p">
+ The rule file is read top-down, except for the outer most list <code class="code">settings</code>, which is intended to store setting data for this rule.
+ Multiple outer most list Objects may be specified and they are executed as provided, in a top-down manner.
+ </p>
+ <p class="p">
+ The <code class="code">settings</code> Rule Type has the following <code class="code">FSS-0001 (Extended)</code> Content:
+ </p>
+ <ul>
+ <li><code class="code">affinity</code>: Define one or more processors to restrict this rule by with each number representing a specific processor by its id (starting at 0).</li>
+ <li><code class="code">capability</code>: Define a set of capabilities in which to use, using the capability <code class="code">text</code> format (such as <code class="code">= cap_chown+ep</code>).</li>
+ <li><code class="code">cgroup</code>: Define a cgroup (control group) in which everything within this rule executes under.</li>
+ <li><code class="code">define</code>: A single environment variable name and its associated value that is automatically exposed to processes executed within this rule.</li>
+ <li><code class="code">engine</code>: An executable name of a script, such as <code class="code">bash</code>, to use for the <code class="code">script</code> Rule Type (which likely defaults to <code class="code">bash</code> if not specified).</li>
+ <li><code class="code">environment</code>: A set of environment variables to expose to the processes executed within this rule (<code class="code">PATH</code> is always exposed).</li>
+ <li><code class="code">group</code>: A set of group names or IDs to execute as with the first group being the primary group and all remaining being supplementary groups.</li>
+ <li><code class="code">limit</code>: Define a resource limit to use (multiple limits may be specified, but only once for each type).</li>
+ <li><code class="code">name</code>: A name used to represent this rule, which is printed to the user, screen, logs, etc...</li>
+ <li><code class="code">nice</code>: A single niceness value to run all processes executed within this rule as (-20 gets to be greediest in CPU usage and 19 being the nicest in CPU usage).</li>
+ <li><code class="code">on</code>: Define a Rule Action in which a specified dependency is needed, wanted, or wished for.</li>
+ <li><code class="code">parameter</code>: An IKI name and its associated value for use in this rule file.</li>
+ <li><code class="code">path</code>: A single Content used to set a custom <code class="code">PATH</code> environment variable value.</li>
+ <li><code class="code">scheduler</code>: A valid name of a scheduler to use followed by an optional priority number.</li>
+ <li><code class="code">timeout</code>: A set of timeouts to wait for in which to perform a set action or to consider failure.</li>
+ <li><code class="code">user</code>: A single user name or ID to execute as.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">capability</code> setting:
+ </p>
+ <ul>
+ <li>If the user the controller program is run as does not have the desired capabilities already, they cannot be added.</li>
+ <li>This essentially maintains or reduces the capabilities already available.</li>
+ <li>Due to capabilities only being a draft in the POSIX standard, one may expect <code class="code">capabilities</code> support may not be available and in such a case this setting will do nothing.</li>
+ <li>If the dependent project (f_capability) does not have libcap support enabled, then capabilities will be unsupported by the compilation of this project.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">control</code> setting:
+ </p>
+ <ul>
+ <li>The first argument is either <code class="code">existing</code> or <code class="code">new</code>, where for <code class="code">existing</code> the process is run inside the existing control used by the parent and when <code class="code">new</code> the process is executed within a new control group namespace entirely.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">define</code> setting:
+ </p>
+ <ul>
+ <li>Use this to define an environment variable (this overwrites any existing environment variable with this name).</li>
+ <li>A define is both exported as an environment variable as well as exposed as an IKI variable.</li>
+ <li>Example IKI variable substitution: for <code class="code">define PATH /bin:/sbin</code>, the associated IKI variable would look like: <code class="code">define:"PATH"</code>.</li>
+ <li>All environment variables, including those defined using this, must be in the <code class="code">environment</code> list to be exported to the executed process.</li>
+ <li>Environment variables added here that are not added to the environment are still exposed as an IKI variable.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">engine</code> setting:
+ </p>
+ <ul>
+ <li>This engine is used for both <code class="code">script</code> and <code class="code">utility</code> Rule Types.</li>
+ <li>The program that engine refers to must accept a standard input pipe to be supported.</li>
+ <li>Additional parameters may be passed to the engine.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">group</code> and <code class="code">user</code> settings:
+ </p>
+ <ul>
+ <li>Only users and groups that the user the controller program is being run as is allowed to use may be used.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">limit</code> setting:
+ </p>
+ <ul>
+ <li>The first parameter must be one of: <code class="code">as</code>, <code class="code">core</code>, <code class="code">cpu</code>, <code class="code">data</code>, <code class="code">fsize</code>, <code class="code">locks</code>, <code class="code">memlock</code>, <code class="code">msgqueue</code>, <code class="code">nice</code>, <code class="code">nofile</code>, <code class="code">nproc</code>, <code class="code">rss</code>, <code class="code">rtprio</code>, <code class="code">rttime</code>, <code class="code">sigpending</code>, or <code class="code">stack</code>.</li>
+ <li>The second parameter represents the soft limit.</li>
+ <li>The third parameter represents the hard limit.</li>
+ <li>This may be specified multiply times, but only once for each type.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">on</code> setting:
+ </p>
+ <ul>
+ <li>The first parameter represents the Action the dependency exists under and must be one of: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, or <code class="code">thaw</code>.</li>
+ <li>The second parameter represents how the dependency is required and must be one of: <code class="code">need</code>, <code class="code">want</code>, or <code class="code">wish</code>.</li>
+ <li>The third parameter is a partial path to the rule file.</li>
+ <li>The fourth parameter represents the name of the rule file.</li>
+ </ul>
+ <p class="p">
+ In the case of the second parameter:
+ </p>
+ <ul>
+ <li>A <code class="code">need</code> designates that the dependent rule is required to be executed (must exist and must succeed).</li>
+ <li>A <code class="code">want</code> designates that the dependent rule is to be executed (may exist and if it does, then it must succeed).</li>
+ <li>A <code class="code">wish</code> designates that the dependent rule is to be executed (may exist and if it does, but it does not need to succeed).</li>
+ </ul>
+ <p class="p">
+ In the case of <code class="code">want</code> and <code class="code">wish</code>, if the desired rule is either not found or is otherwise disabled, then this will not fail or otherwise block the wanting or wishing rule.
+ </p>
+ <p class="p">
+ The <code class="code">path</code> setting:
+ </p>
+ <ul>
+ <li>When specified, the <code class="code">PATH</code> environment variable is automatically added to the <code class="code">environment</code> setting.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">parameter</code> setting:
+ </p>
+ <ul>
+ <li>Use this to define an IKI variable name and value.</li>
+ <li>These do not conflict with environment variables and are not exposed as environment variables.</li>
+ <li>Example IKI variable substitution: for <code class="code">parameter hello world</code>, the associated IKI variable would look like: <code class="code">parameter:"hello"</code>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">scheduler</code> setting:
+ </p>
+ <ul>
+ <li>The valid range of the priority number is dependent on the scheduler.</li>
+ <li>For example, non-real-time schedulers (such as <code class="code">idle</code>) only support a value of 0 whereas real-time schedulers (such as <code class="code">fifo</code>) only support an inclusive range of 1 to 99.</li>
+ <li>Supported non-real-time schedulers are: <code class="code">batch</code>, <code class="code">idle</code>, and <code class="code">other</code> (aka: <code class="code">normal/default</code>).</li>
+ <li>Supported real-time schedulers are: <code class="code">deadline</code>, <code class="code">fifo</code>, <code class="code">round_robin</code>.</li>
+ </ul>
+ <p class="p">
+ The <code class="code">timeout</code> setting:
+ </p>
+ <ul>
+ <li>(This is not currently implemented.)</li>
+ <li>Provides settings for each of the three special situations: <code class="code">kill</code>, <code class="code">start</code>, and <code class="code">stop</code>.</li>
+ <li>Each of these may only have a single one exist at a time (one <code class="code">kill</code>, one <code class="code">start</code>, and one <code class="code">stop</code>).</li>
+ <li>Each successive <code class="code">timeout</code> Item Action, specific to each Action Name (such as <code class="code">start</code>), specified replaces the previously defined <code class="code">timeout</code> Action (in a top-down manner).</li>
+ <li>The second Content for each of these, when specified, may be a 0 or greater whole number representing the number of <em>MegaTime</em> (MT) (equivalent to milliseconds).</li>
+ <li>For <code class="code">kill</code>, this represents the number of <em>MegaTime</em> to wait after stopping some Rule and that Rule has not yet stopped to forcefully stop the Rule (aka kill the Rule).</li>
+ <li>For <code class="code">start</code>, this represents the number of <em>MegaTime</em> to wait after starting some Rule before assuming something went wrong and the Rule is returned as failed.</li>
+ <li>For <code class="code">stop</code>, this represents the number of <em>MegaTime</em> to wait after stopping some Rule before assuming something went wrong and the Rule is returned as failed.</li>
+ <li>If the second Content is not specified, then this disables the type (prevents the specified timeout action).</li>
+ </ul>
+ <p class="p">
+ There are four available Rule Types to choose from: <code class="code">command</code>, <code class="code">service</code>, <code class="code">script</code>, and <code class="code">utility</code>.
+ </p>
+ <p class="p">
+ The <code class="code">command</code> Rule Type provides a simple command to run under the different circumstances: <code class="code">start</code>, <code class="code">stop</code>, <code class="code">restart</code>, and <code class="code">reload</code>.
+ A <code class="code">command</code> always operates in the foreground.
+ </p>
+ <p class="p">
+ The <code class="code">service</code> Rule Type provides a <code class="code">command</code> accompanied with a <abbr title="Process Identifier">PID</abbr> file (Process Identifier file).
+ </p>
+ <p class="p">
+ The <code class="code">script</code> Rule Type provides a series of lines to be executed by some engine, such as GNU Bash.
+ This <code class="code">script</code> operates in the foreground, but individual things done within the script may operate in foreground or background.
+ The last return state is treated as an error, so be sure to finish the script with a return code of 0 to designate no error and any other whole number, such a 1, to designate an error.
+ Therefore passing <code class="code">exit 1</code> would return as an error and passing <code class="code">exit 0</code> would return as a success.
+ A <code class="code">script</code> is assumed to be in GNU Bash, which is the default expected behavior, but the specification does not explicitly require this.
+ Another scripting language can be used but changing this incurs the responsibility to ensure all rules are updated to the appropriate scripting language.
+ </p>
+ <p class="p">
+ The <code class="code">utility</code> Rule Type provides a <code class="code">script</code> accompanied with a <abbr title="Process Identifier">PID</abbr> file (Process Identifier file).
+ </p>
+ <p class="p">
+ There are nine Rule Actions used to execute (<code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>):
+ </p>
+ <p class="p">
+ When <code class="code">restart</code> Object's Content is not provided, then <code class="code">start</code> and <code class="code">stop</code> is called when the rule is executed using the restart Action, if both <code class="code">start</code> and <code class="code">stop</code> are provided.
+ </p>
+ <p class="p">
+ When <code class="code">reload</code>, <code class="code">start</code>, or <code class="code">stop</code> Object's Content are not provided, then no respective Action is performed.
+ </p>
+ <p class="p">
+ Commands are conditionally available depending on the presence of these, such as if <code class="code">stop</code> is not provided then <code class="code">stop</code> (and <code class="code">restart</code>) will not be available for the <code class="code">control</code> program(s) to use.
+ </p>
+ <p class="p">
+ Thee are additional Rule Actions not used to execute (<code class="code">pid_file</code>, <code class="code">rerun</code>, and <code class="code">with</code>):
+ </p>
+ <ul>
+ <li>The <code class="code">pid_file</code> Object's Content designates the path to the <abbr title="Process Identifier">PID</abbr> file created by the called program.</li>
+ <li>
+ <div>The <code class="code">rerun</code> Object's Content designates how to re-run a given execution Rule type.</div>
+ <ul>
+ <li>The first Content represents the execution type, which may be one of: <code class="code">freeze</code>, <code class="code">kill</code>, <code class="code">pause</code>, <code class="code">reload</code>, <code class="code">restart</code>, <code class="code">resume</code>, <code class="code">start</code>, <code class="code">stop</code>, and <code class="code">thaw</code>.</li>
+ <li>The second Content represents when to run this re-run is triggered, which is either <code class="code">success</code> (return code of 0) or <code class="code">failure</code> (return code is not 0).</li>
+ <li>
+ <div>The third Content and more represent additional options for fine tuning how the re-run is Performed:</div>
+ <ul>
+ <li>When <code class="code">delay</code>, followed by a number of <em>MegaTime</em> (MT) (equivalent to milliseconds) in which to wait before attempting the re-run.</li>
+ <li>When <code class="code">max</code>, followed by a positive number or the number 0 designating the maximum number of re-runs to perform.</li>
+ <li>
+ <div>When <code class="code">reset</code>, the <code class="code">max</code> re-run counter is reset for the opposite re-run when this re-run is triggered, such as:</div>
+ <ul>
+ <li>A <code class="code">rerun start success reset</code> and a <code class="code">rerun failure max 10</code>, the failure counter would reset to 0 when the <code class="code">success</code> re-run is performed and not when the <code class="code">failure</code> re-run is performed.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>A <code class="code">max</code> of 0 designates that the re-run will happen infinitely.</li>
+ </ul>
+ </li>
+ <li>
+ <div>The <code class="code">with</code> Object's Content designates special flags designating very specific behavior to be applied to any single Rule Type.</div>
+ <ul>
+ <li>
+ <div>The following flags are supported:</div>
+ <ul>
+ <li><code class="code">full_path</code>: Used only by Rule Types that execute something, wherein the entire full path is used for execution and is assigned as <code class="code">argument[0]</code> (such as <code class="code">/bin/bash</code>).</li>
+ <li> When not specified, the path provided is used and the <code class="code">argument[0]</code> will be the base name (such as <code class="code">bash</code>).</li>
+ <li><code class="code">session_new</code>: Execute in a new session setting the process group to the executed process' id (making the executed process a <code class="code">controlling terminal</code>).</li>
+ <li><code class="code">session_same</code>: Execute in the same session where the process group is set to the parent process id.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <p class="p">
+ IKI Variables:
+ </p>
+ <ul>
+ <li>All Rule Actions support IKI variable substitution.</li>
+ <li>The Rule Settings do not support IKI variable substitution.</li>
+ <li>
+ <div>The following IKI variable names are supported:</div>
+ <ul>
+ <li>define</li>
+ <li>parameter</li>
+ <li>program</li>
+ </ul>
+ <p class="p">
+ The <code class="code">define</code> IKI variables, such as <code class="code">define:"PATH"</code>, expand environment variables.
+ </p>
+ <p class="p">
+ The <code class="code">parameter</code> IKI variables, such as <code class="code">parameter:"hello"</code>, expand IKI variables defined using the <code class="code">parameter</code> Setting Rule Type.
+ </p>
+ <p class="p">
+ The <code class="code">program</code> IKI variables, such as <code class="code">program:"verbose:option"</code>, expand program arguments (where <code class="code">verbose:option</code> might expand into <code class="code">-v</code> ).
+ </p>
+ <p class="p">
+ Only the following <code class="code">program</code> IKI variables are supported:
+ </p>
+ <ul>
+ <li>
+ <div><code class="code">dark</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">dark</code> program parameters, such as <code class="code">+d</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">light</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">light</code> program parameters, such as <code class="code">+l</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">no_color</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">no_color</code> program parameters, such as <code class="code">+n</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">quiet</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">quiet</code> program parameters, such as <code class="code">+Q</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">error</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">error</code> program parameters, such as <code class="code">+E</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">normal</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">normal</code> program parameters, such as <code class="code">+N</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">verbose</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">verbose</code> program parameters, such as <code class="code">+V</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">debug</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">debug</code> program parameters, such as <code class="code">+D</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">cgroup</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">cgroup</code> program parameters, such as <code class="code">-c /sys/fs/cgroup/</code>.</li>
+ <li>This supports both <code class="code">:option</code> and <code class="code">:value</code>.</li>
+ </ul>
+ </li>
+ <li>
+ <div><code class="code">daemon</code>:</div>
+ <ul>
+ <li>This variable holds the <code class="code">daemon</code> program parameters, such as <code class="code">-d</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ <li>
+ <div><code class="code">init</code>:
+ <ul>
+ <li>This variable holds the <code class="code">init</code> program parameters, such as <code class="code">-I</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ <li>
+ <div><code class="code">interruptible</code>:
+ <ul>
+ <li>This variable holds the <code class="code">interruptible</code> program parameters, such as <code class="code">-i</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ <li>
+ <div><code class="code">pid</code>:
+ <ul>
+ <li>This variable holds the <code class="code">pid</code> program parameters, such as <code class="code">-p controller/run/default.pid</code>.</li>
+ <li>This supports both <code class="code">:option</code> and <code class="code">:value</code>.</li>
+ </ul>
+ <li>
+ <div><code class="code">settings</code>:
+ <ul>
+ <li>This variable holds the <code class="code">settings</code> program parameters, such as <code class="code">-s controller/</code>.</li>
+ <li>This supports both <code class="code">:option</code> and <code class="code">:value</code>.</li>
+ </ul>
+ <li>
+ <div><code class="code">simulate</code>:
+ <ul>
+ <li>This variable holds the <code class="code">simulate</code> program parameters, such as <code class="code">-S</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ <ul>
+ <li>
+ <div><code class="code">socket</code>:
+ <ul>
+ <li>This variable holds the <code class="code">socket</code> program parameters, such as <code class="code">-k controller/run/default.socket</code>.</li>
+ <li>This supports both <code class="code">:option</code> and <code class="code">:value</code>.</li>
+ </ul>
+ <li>
+ <div><code class="code">uninterruptible</code>:
+ <ul>
+ <li>This variable holds the <code class="code">uninterruptible</code> program parameters, such as <code class="code">-U</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ <li>
+ <div><code class="code">validate</code>:
+ <ul>
+ <li>This variable holds the <code class="code">validate</code> program parameters, such as <code class="code">-v</code>.</li>
+ <li>This supports <code class="code">:option</code>.</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Featureless Make</div>
</div>
<div class="nav-item block">
- <a href="documentation/fake.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fake.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fake/specifications.html" class="nav-text link">Featureless Make</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">Featureless Make Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fake</strong> program, also called <strong>Featureless Make</strong> is the flagship program of the <abbr title="Featureless Linux Library">FLL</abbr> project and provides the ability to compile source code and perform various actions not unlike how the <strong>GNU Make</strong> program operates.
- </p>
- <p class="p">
- This tools is directly intended to be a replacement to the <strong>GNU Make</strong> program but not as a replacement for all of the <strong>GNU Make</strong> functionality. Instead, the <strong>fake</strong> program follows the ideology that a build program should not involve itself with system-specific behavior, such as installing to a system.
- </p>
- <p class="p">
- Despite this non-standard ideology, the <strong>fake</strong> program is flexible enough to be used as an installer. In fact, this tool is used to not only build the entire <abbr title="Featureless Linux Library">FLL</abbr> but it can also compile and run unit tests for the project.
- </p>
- <p class="p">
- A bootstrap script is provided in all <abbr title="Featureless Linux Library">FLL</abbr> projects that operates with almost complete one-to-one functionality to this tool to allow for the system to build itself. A great example of this is the test script used to run unit tests on services like Github where this project must compile itself and then use itself to run unit tests against itself.
- </p>
- <p class="p">
- While most of the programs provided with the <abbr title="Featureless Linux Library">FLL</abbr> are young and not well tested, the <strong>fake</strong> program is considered mature.
- </p>
- <p class="p">
- There are two primary operations in which this tool executes:
- </p>
- <ol>
- <li>The <strong>build</strong> operation.</li>
- <li>The <strong>make</strong> operation.</li>
- </ol>
- <p class="p">
- The <strong>build</strong> mode is derived from the idea that most of the compilation process is redundant and can be simplified to a pre-define set of configuration settings. This reduces the amount of efforted needed to write and mainting a build system at the cost of flexibility.
- </p>
- <p class="p">
- The <strong>make</strong> mode is the mode for operating as a replacement to the <strong>GNU Make</strong> program. This provides scriptable ways to perform just about any task needed when building a system. Many of the <strong>build</strong> mode settings are available (but are not required) and this mode can even call the <strong>build</strong> mode itself.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fake</strong> program, also called <strong>Featureless Make</strong> is the flagship program of the <abbr title="Featureless Linux Library">FLL</abbr> project and provides the ability to compile source code and perform various actions not unlike how the <strong>GNU Make</strong> program operates.
+ </p>
+ <p class="p">
+ This tools is directly intended to be a replacement to the <strong>GNU Make</strong> program but not as a replacement for all of the <strong>GNU Make</strong> functionality. Instead, the <strong>fake</strong> program follows the ideology that a build program should not involve itself with system-specific behavior, such as installing to a system.
+ </p>
+ <p class="p">
+ Despite this non-standard ideology, the <strong>fake</strong> program is flexible enough to be used as an installer. In fact, this tool is used to not only build the entire <abbr title="Featureless Linux Library">FLL</abbr> but it can also compile and run unit tests for the project.
+ </p>
+ <p class="p">
+ A bootstrap script is provided in all <abbr title="Featureless Linux Library">FLL</abbr> projects that operates with almost complete one-to-one functionality to this tool to allow for the system to build itself. A great example of this is the test script used to run unit tests on services like Github where this project must compile itself and then use itself to run unit tests against itself.
+ </p>
+ <p class="p">
+ While most of the programs provided with the <abbr title="Featureless Linux Library">FLL</abbr> are young and not well tested, the <strong>fake</strong> program is considered mature.
+ </p>
+ <p class="p">
+ There are two primary operations in which this tool executes:
+ </p>
+ <ol>
+ <li>The <strong>build</strong> operation.</li>
+ <li>The <strong>make</strong> operation.</li>
+ </ol>
+ <p class="p">
+ The <strong>build</strong> mode is derived from the idea that most of the compilation process is redundant and can be simplified to a pre-define set of configuration settings. This reduces the amount of efforted needed to write and mainting a build system at the cost of flexibility.
+ </p>
+ <p class="p">
+ The <strong>make</strong> mode is the mode for operating as a replacement to the <strong>GNU Make</strong> program. This provides scriptable ways to perform just about any task needed when building a system. Many of the <strong>build</strong> mode settings are available (but are not required) and this mode can even call the <strong>build</strong> mode itself.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Featureless Make - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Featureless Make program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Featureless Make, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fake/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fake.html" class="nav-text link">Featureless Make</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html#operations" class="nav-text link">Operations</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">Featureless Make</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fake/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fake/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Featureless Make Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>Featureless Make</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Firewall program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Firewall, Iptables, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Firewall</div>
</div>
<div class="nav-item block">
- <a href="documentation/firewall.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/firewall.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/firewall/specifications.html" class="nav-text link">Firewall</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">Firewall Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>firewall</strong> program is a tool for simplifying and automating the <strong>iptables</strong> program.
- </p>
- <p class="p">
- This tool is set to be replaced now that both the <strong>firewall</strong> and the <strong>iptables</strong> programs are outdated. The latest <strong>iptables</strong> program replacement (the <strong>nftables</strong> program) is superior and the <strong>firewall</strong> will need major rewrites to utilize the replacement.
- </p>
- <p class="p">
- This tools is one of the original two programs of the <abbr title="Featureless Linux Library">FLL</abbr> project and is designed to be a fully functional proof of concept for the <abbr title="Featureless Linux Library">FLL</abbr> project.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>firewall</strong> program is a tool for simplifying and automating the <strong>iptables</strong> program.
+ </p>
+ <p class="p">
+ This tool is set to be replaced now that both the <strong>firewall</strong> and the <strong>iptables</strong> programs are outdated. The latest <strong>iptables</strong> program replacement (the <strong>nftables</strong> program) is superior and the <strong>firewall</strong> will need major rewrites to utilize the replacement.
+ </p>
+ <p class="p">
+ This tools is one of the original two programs of the <abbr title="Featureless Linux Library">FLL</abbr> project and is designed to be a fully functional proof of concept for the <abbr title="Featureless Linux Library">FLL</abbr> project.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Firewall - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Firewall program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Firewall, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/firewall/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/firewall.html" class="nav-text link">Firewall</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/firewall.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/firewall.html#commands" class="nav-text link">Commands</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">Firewall</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/firewall/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/firewall/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Firewall Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>Firewall</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Basic List Read program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Basic List Read, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Basic List Read</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_basic_list_read.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_basic_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_basic_list_read/specifications.html" class="nav-text link">FSS Basic List Read</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Basic List Read Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_basic_list_read</strong> program is a tool for reading and processing strings that follow the FSS-0002 (Basic List) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_basic_list_read</strong> program is a tool for reading and processing strings that follow the <code class="code">FSS-0002 (Basic List)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic List Read - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic List Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Basic List Read, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/byte_dump/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/byte_dump.html" class="nav-text link">FSS Basic List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Basic List Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/byte_dump/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/byte_dump/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic List Read Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Basic List Read</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Basic List Write program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Basic List Write, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Basic List Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_basic_list_write.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_basic_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_basic_list_write/specifications.html" class="nav-text link">FSS Basic List Write</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Basic List Write Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_basic_list_write</strong> program is a tool for generating strings that follow the FSS-0002 (Basic List) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input using a special format.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_basic_list_write</strong> program is a tool for generating strings that follow the <code class="code">FSS-0002 (Basic List)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
</p>
<p class="p">
- The FSS-0002 (Basic List) specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
+ The <code class="code">FSS-0002 (Basic List)</code> specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
</p>
<p class="p">
This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing. This parameter requires two values.
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic List Write - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic List Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Basic List Write, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_basic_list_write/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_basic_list_write.html" class="nav-text link">FSS Basic List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Basic List Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_basic_list_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_basic_list_write/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic List Write Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Basic List Write</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Basic Read program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Basic Read, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Basic Read</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_basic_read.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_basic_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_basic_read/specifications.html" class="nav-text link">FSS Basic Read</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Basic Read Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_basic_read</strong> program is a tool for reading and processing strings that follow the FSS-0000 (Basic) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_basic_read</strong> program is a tool for reading and processing strings that follow the <code class="code">FSS-0000 (Basic)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic Read - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Basic Read, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_basic_read/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_basic_read.html" class="nav-text link">FSS Basic Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Basic Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_basic_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_basic_read/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic Read Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Basic Read</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Basic Write program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Basic Write, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Basic Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_basic_write.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_basic_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_basic_write/specifications.html" class="nav-text link">FSS Basic Write</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Basic Write Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_basic_write</strong> program is a tool for generating strings that follow the FSS-0000 (Basic) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input using a special format.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_basic_write</strong> program is a tool for generating strings that follow the <code class="code">FSS-0000 (Basic)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
</p>
<p class="p">
- The FSS-0000 (Basic) specification does not support multi-line Content, therefore the parameter <code class="code">--prepend</code> does nothing.
+ The <code class="code">FSS-0000 (Basic)</code> specification does not support multi-line Content, therefore the parameter <code class="code">--prepend</code> does nothing.
</p>
<p class="p">
This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing. This parameter requires two values.
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic Write - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Basic Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Basic Write, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_basic_write/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_basic_write.html" class="nav-text link">FSS Basic Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Basic Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_basic_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_basic_write/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Basic Write Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Basic Write</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Embedded List Read program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Embedded List Read, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Embedded List Read</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_embedded_list_read.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_embedded_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_embedded_list_read/specifications.html" class="nav-text link">FSS Embedded List Read</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Embedded List Read Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_embedded_list_read</strong> program is a tool for reading and processing strings that follow the FSS-0008 (Embedded List) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_embedded_list_read</strong> program is a tool for reading and processing strings that follow the <code class="code">FSS-0008 (Embedded List)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Embedded List Read - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Embedded List Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Embedded List Read, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_embedded_list_read/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_embedded_list_read.html" class="nav-text link">FSS Embedded List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Embedded List Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_embedded_list_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_embedded_list_read/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Embedded List Read Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Embedded List Read</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Embedded List Write program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Embedded List Write, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Embedded List Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_embedded_list_write.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_embedded_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_embedded_list_write/specifications.html" class="nav-text link">FSS Embedded List Write</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Embedded List Write Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_embedded_list_write</strong> program is a tool for generating strings that follow the FSS-0008 (Embedded List) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input using a special format.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_embedded_list_write</strong> program is a tool for generating strings that follow the <code class="code">FSS-0008 (Embedded List)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
</p>
<p class="p">
- The FSS-0008 (Embedded List) specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
+ The <code class="code">FSS-0008 (Embedded List)</code> specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
</p>
<p class="p">
This program uses the parameter <code class="code">--ignore</code>, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a <code class="code">--content</code> parameter and this applies only to the Content represented by that specific <code class="code">--content</code> parameter.
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Embedded List Write - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Embedded List Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Embedded List Write, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_embedded_list_write/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_embedded_list_write.html" class="nav-text link">FSS Embedded List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Embedded List Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_embedded_list_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_embedded_list_write/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Embedded List Write Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Embedded List Write</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Extended List Read program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Extended List Read, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Extended List Read</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_extended_list_read.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_extended_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_extended_list_read/specifications.html" class="nav-text link">FSS Extended List Read</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Extended List Read Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_extended_list_read</strong> program is a tool for reading and processing strings that follow the FSS-0003 (Extended List) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_extended_list_read</strong> program is a tool for reading and processing strings that follow the <code class="code">FSS-0003 (Extended List)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended List Read - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended List Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Extended List Read, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_list_read/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_extended_list_read.html" class="nav-text link">FSS Extended List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Extended List Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_list_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_list_read/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended List Read Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Extended List Read</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Extended List Write program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Extended List Write, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Extended List Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_extended_list_write.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_extended_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_extended_list_write/specifications.html" class="nav-text link">FSS Extended List Write</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Extended List Write Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_extended_list_write</strong> program is a tool for generating strings that follow the FSS-0003 (Extended List) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input using a special format.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_extended_list_write</strong> program is a tool for generating strings that follow the <code class="code">FSS-0003 (Extended List)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
</p>
<p class="p">
- The FSS-0003 (Extended List) specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
+ The <code class="code">FSS-0003 (Extended List)</code> specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
</p>
<p class="p">
This program uses the parameter <code class="code">--ignore</code>, which designates to not escape any valid nested Object or Content within some Content. This parameter requires two values. This parameter is not used for ignoring anything from the input pipe. This parameter must be specified after a <code class="code">--content</code> parameter and this applies only to the Content represented by that specific <code class="code">--content</code> parameter.
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended List Write - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended List Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Extended List Write, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_list_write/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_extended_list_write.html" class="nav-text link">FSS Extended List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Extended List Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_list_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_list_write/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended List Write Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Extended List Write</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Extended Read program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Extended Read, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Extended Read</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_extended_read.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_extended_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_extended_read/specifications.html" class="nav-text link">FSS Extended Read</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Extended Read Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_extended_read</strong> program is a tool for reading and processing strings that follow the FSS-0001 (Extended) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_extended_read</strong> program is a tool for reading and processing strings that follow the <code class="code">FSS-0001 (Extended)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended Read - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Extended Read, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_read/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_extended_read.html" class="nav-text link">FSS Extended Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Extended Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_read/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended Read Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Extended Read</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Extended Write program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Extended Write, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Extended Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_extended_write.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_extended_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_extended_write/specifications.html" class="nav-text link">FSS Extended Write</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Extended Write Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_extended_write</strong> program is a tool for generating strings that follow the FSS-0001 (Extended) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input using a special format.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_extended_write</strong> program is a tool for generating strings that follow the <code class="code">FSS-0001 (Extended)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
</p>
<p class="p">
- The FSS-0001 (Extended) specification does not support multi-line Content, therefore the parameter <code class="code">--prepend</code> does nothing.
+ The <code class="code">FSS-0001 (Extended)</code> specification does not support multi-line Content, therefore the parameter <code class="code">--prepend</code> does nothing.
</p>
<p class="p">
This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing. This parameter requires two values.
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Extended Write - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Extended Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Extended Write, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_extended_write/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_extended_write.html" class="nav-text link">FSS Extended Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Extended Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_extended_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_extended_write/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Extended Write Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Extended Write</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Identify program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Identify, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Identify</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_identify.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_identify.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_identify/specifications.html" class="nav-text link">FSS Identify</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Identify Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_identify</strong> program is a tool for processing strings in an attempt to identify the <abbr title="Featureless Settings Specification">FSS</abbr> file format based on <abbr title="Featureless Settings Specification">FSS</abbr> header comments.
- </p>
- <p class="p">
- This program doesn't perforrm any special heuristic. It only checks for the special <abbr title="Featureless Settings Specification">FSS</abbr> header and reports what it finds.
- </p>
- <p class="p">
- This tool is designed to be scriptable but does not accept piped input.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_identify</strong> program is a tool for processing strings in an attempt to identify the <abbr title="Featureless Settings Specification">FSS</abbr> file format based on <abbr title="Featureless Settings Specification">FSS</abbr> header comments.
+ </p>
+ <p class="p">
+ This program doesn't perforrm any special heuristic. It only checks for the special <abbr title="Featureless Settings Specification">FSS</abbr> header and reports what it finds.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable but does not accept piped input.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
When specifying the <code class="code">--total</code> parameter, neither the <code class="code">--object</code> nor the <code class="code">--content</code> parameter may be specified.
</p>
<p class="p">
- An <abbr title="Featureless Settings Specifications">FSS</abbr> file is identified by the format "<code class="code"># Object-Content</code>" where the Object, is a machine-name representing the name and may only consist of "word" characters and the Content is a 4-digit hexidecimal number representing a particular variant of the Object. This identifier, if provided, must exist on the first line in a file and must begin with the pound character: "<code class="code">#</code>". White space must follow this pound character. There may be multiple Object and Content pairs, separated by white space, such as: "<code class="code"># fss-0002 fss-0000 iki-0002</code>".
+ An <abbr title="Featureless Settings Specifications">FSS</abbr> file is identified by the format "<code class="code"># Object-Content</code>" where the Object, is a machine-name representing the name and may only consist of "word" characters and the Content is a 4-digit hexidecimal number representing a particular variant of the Object. This identifier, if provided, must exist on the first line in a file and must begin with the pound character: "<code class="code">#</code>". White space must follow this pound character. There may be multiple Object and Content pairs, separated by white space, such as: "<code class="code"># FSS-0002 FSS-0000 iki-0002</code>".
</p>
</div>
</section>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Identify - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Identify program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Identify, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_identify/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_identify.html" class="nav-text link">FSS Identify</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_identify.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_identify.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Identify</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_identify/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_identify/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Identify Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Identify</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Payload Read program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Payload Read, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Payload Read</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_payload_read.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_payload_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_payload_read/specifications.html" class="nav-text link">FSS Payload Read</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Payload Read Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_payload_read</strong> program is a tool for reading and processing strings that follow the FSS-000E (Payload) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_payload_read</strong> program is a tool for reading and processing strings that follow the <code class="code">FSS-000E (Payload)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input, treating the piped input as a file being read.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
As an exceptional case, a <code class="code">--depth</code> of 1 applies only to the explicit Object of "<em>header</em>".
</p>
<p class="p">
- Content at this depth is processed as FSS-0001 (Extended).
+ Content at this depth is processed as <code class="code">FSS-0001 (Extended)</code>.
</p>
<p class="p">
The Content of the explicit Object of 'payload' will not contain any Content close pipe control codes when using <code class="code">--pipe</code>.
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Payload Read - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Payload Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Payload Read, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_payload_read/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_payload_read.html" class="nav-text link">FSS Payload Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Payload Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_payload_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_payload_read/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Payload Read Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Payload Read</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Payload Write program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Payload Write, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Payload Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_payload_write.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_payload_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_payload_write/specifications.html" class="nav-text link">FSS Payload Write</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Payload Write Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_payload_write</strong> program is a tool for generating strings that follow the FSS-000E (Payload) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input using a special format.
- </p>
- <p class="p">
- This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_payload_write</strong> program is a tool for generating strings that follow the <code class="code">FSS-000E (Payload)</code> standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ <p class="p">
+ This tool shares parameters between with the other <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs to make scripting consistent across the <abbr title="Featureless Settings Specification">FSS</abbr> Read and Write programs even if any given program neither needs nor uses the parameter.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
For the pipe, an Object is terminated by either a Backspace character '<kbd>\b</kbd>' (U+0008) or a Form Feed character '<kbd>\f</kbd>' (U+000C). The end of the pipe represents the end of any Object or Content.
</p>
<p class="p">
- The FSS-000E (Payload) specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
+ The <code class="code">FSS-000E (Payload)</code> specification does not support quoted names, therefore the parameters <code class="code">--single</code> and <code class="code">--double</code> do nothing.
</p>
<p class="p">
This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing. This parameter requires two values.
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Payload Write - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Payload Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Payload Write, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_payload_write/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_payload_write.html" class="nav-text link">FSS Payload Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Payload Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_payload_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_payload_write/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Payload Write Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Payload Write</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="FSS Status Code program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS Status Code, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">FSS Status Code</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_status_code.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/fss_status_code.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/fss_status_code/specifications.html" class="nav-text link">FSS Status Code</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">FSS Status Code Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>fss_status_code</strong> program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
- </p>
- <p class="p">
- This program handles standard <abbr title="Featureless Linux Library">FLL</abbr> status codes as well as <abbr title="Featureless Settings Specifications">FSS</abbr> status codes. The max status code supported is represented by the code words <code class="code">F_fss_status_code_last</code>.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>fss_status_code</strong> program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
+ </p>
+ <p class="p">
+ This program handles standard <abbr title="Featureless Linux Library">FLL</abbr> status codes as well as <abbr title="Featureless Settings Specifications">FSS</abbr> status codes. The max status code supported is represented by the code words <code class="code">F_fss_status_code_last</code>.
+ </p>
+ </div>
<section id="parameters-standard" id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Status Code - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Status Code program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS Status Code, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/fss_status_code/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/fss_status_code.html" class="nav-text link">FSS Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_status_code.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_status_code.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">FSS Status Code</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/fss_status_code/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/fss_status_code/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">FSS Status Code Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>FSS Status Code</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="IKI Read program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, IKI, IKI Read, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">IKI Read</div>
</div>
<div class="nav-item block">
- <a href="documentation/iki_read.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/iki_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/iki_read/specifications.html" class="nav-text link">IKI Read</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">IKI Read Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>iki_read</strong> program is a tool for processing strings that follow the IKI standard, specifically IKI-0000 (Unrestricted).
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input.
- </p>
- <p class="p">
- Different ways of interpreting and printing strings are available.
- </p>
- <p class="p">
- The entire string can be printed, replacing all IKI Variables and even allowing for primitive substitution or only the IKI Variables (or their Content) can be printed.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>iki_read</strong> program is a tool for processing strings that follow the IKI standard, specifically IKI-0000 (Unrestricted).
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input.
+ </p>
+ <p class="p">
+ Different ways of interpreting and printing strings are available.
+ </p>
+ <p class="p">
+ The entire string can be printed, replacing all IKI Variables and even allowing for primitive substitution or only the IKI Variables (or their Content) can be printed.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - IKI Read - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="IKI Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, IKI Read, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/iki_read/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/iki_read.html" class="nav-text link">IKI Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">IKI Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/iki_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/iki_read/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">IKI Read Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>IKI Read</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="IKI Write program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, IKI, IKI Write, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">IKI Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/iki_write.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/iki_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/iki_write/specifications.html" class="nav-text link">IKI Write</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">IKI Write Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>iki_write</strong> program is a tool for generating strings that follow the IKI standard, specifically the IKI-0000 (Unrestricted) standard.
- </p>
- <p class="p">
- This tool is designed to be scriptable and accepts piped input using a special format.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>iki_write</strong> program is a tool for generating strings that follow the IKI standard, specifically the IKI-0000 (Unrestricted) standard.
+ </p>
+ <p class="p">
+ This tool is designed to be scriptable and accepts piped input using a special format.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - IKI Write - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="IKI Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, IKI Write, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/iki_write/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/iki_write.html" class="nav-text link">IKI Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">IKI Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/iki_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/iki_write/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">IKI Write Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>IKI Write</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Status Code program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Status Code, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">Status Code</div>
</div>
<div class="nav-item block">
- <a href="documentation/status_code.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/status_code.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/status_code/specifications.html" class="nav-text link">Status Code</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">Status Code Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>status_code</strong> program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
- </p>
- <p class="p">
- This tool only handles standard <abbr title="Featureless Linux Library">FLL</abbr> status codes. The max status code supported is represented by the code words <code class="code">F_status_code_last</code>.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>status_code</strong> program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa. This is intended to be easily scriptable. The code words are still machine-friendly and scriptable.
+ </p>
+ <p class="p">
+ This tool only handles standard <abbr title="Featureless Linux Library">FLL</abbr> status codes. The max status code supported is represented by the code words <code class="code">F_status_code_last</code>.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Status Code - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Status Code program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Status Code, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/status_code/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/status_code.html" class="nav-text link">Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/status_code.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/status_code.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">Status Code</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/status_code/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/status_code/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Status Code Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>Status Code</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="UTF8 program documentation.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Open-Source">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, UTF-8, Open-Source">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<div class="nav-item block back">
<a href="documentation.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
<div class="nav-text unlink">UTF8</div>
</div>
<div class="nav-item block">
- <a href="documentation/utf8.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="documentation/utf8.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
+ <a href="documentation/utf8/specifications.html" class="nav-text link">UTF8</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
<h1 class="section-title h h1">UTF8 Documentation</h1>
</header>
- <section id="about" class="section">
- <header class="section-header header">
- <h2 class="section-title h h2">About</h2>
- </header>
-
- <div class="section-content">
- <p class="p">
- The <strong>UTF8</strong> program is a tool for converting from a <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte sequence to the Unicode code point. The byte sequence can also be referred to as the binary representation of the code even though the byte sequence is considered text. The term <em>"byte sequence"</em> here is used to refer to a sequence of bytes intended to represent something, which in this case is a Unicode character. The Unicode code point is the Unicode designation uniquely identifying that particular sequence. The Unicode code point is not specific to <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> and persists across different encodings, such as <abbr title="Unicode Transformation Format 16-bit">UTF-16</abbr>.
- </p>
- <p class="p">
- The idea behind the <strong>UTF8</strong> program is to provide the answer to the question of what some special <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> character is or to provide a way to create the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> character given the Unicode code point.
- </p>
- <p class="p">
- This tool is intended to be scriptable, should handle both piped data and files, and can convert entire files.
- </p>
- <p class="p">
- This tool can be used to validate a given byte sequence or can be used to get the character width of some byte sequence or code point.
- </p>
- <p class="p">
- This tool can be used to store binary data in a text-friendly format and then restore the binary data.
- </p>
- </div>
- </section>
+ <div class="main-content">
+ <p class="p">
+ The <strong>UTF8</strong> program is a tool for converting from a <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte sequence to the Unicode code point. The byte sequence can also be referred to as the binary representation of the code even though the byte sequence is considered text. The term <em>"byte sequence"</em> here is used to refer to a sequence of bytes intended to represent something, which in this case is a Unicode character. The Unicode code point is the Unicode designation uniquely identifying that particular sequence. The Unicode code point is not specific to <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> and persists across different encodings, such as <abbr title="Unicode Transformation Format 16-bit">UTF-16</abbr>.
+ </p>
+ <p class="p">
+ The idea behind the <strong>UTF8</strong> program is to provide the answer to the question of what some special <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> character is or to provide a way to create the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> character given the Unicode code point.
+ </p>
+ <p class="p">
+ This tool is intended to be scriptable, should handle both piped data and files, and can convert entire files.
+ </p>
+ <p class="p">
+ This tool can be used to validate a given byte sequence or can be used to get the character width of some byte sequence or code point.
+ </p>
+ <p class="p">
+ This tool can be used to store binary data in a text-friendly format and then restore the binary data.
+ </p>
+ </div>
<section id="parameters-standard" class="section">
<header class="section-header header separate">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - UTF8 - Specifications</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="UTF8 program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, UTF8, Open-Source, Specification">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation/utf8/specifications.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js specification">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block back">
+ <a href="documentation.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="documentation/utf8.html" class="nav-text link">UTF8</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/utf8.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/utf8.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Specifications</div>
+ <div class="nav-text unlink">UTF8</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation/utf8/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation/utf8/specifications.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">UTF8 Specifications</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.
+ The <strong>UTF8</strong> does not use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
#
Featureless Settings Specification: 0000 - Basic:
- Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as part of the object.
- Whitespace separates an Object from the Content.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as part of the object.
+ White space separates an Object from the Content.
An Object may be preceded by a newline, in which case means that the Object has no Content.
- If only printing whitespace follows a valid Object, that Object is considered to have no Content.
+ If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
Content exists on the same line as the Object.
Content is represented as a single Content column terminated by a newline.
- Content column consists of everything following the first non-whitespace character until the newline.
- Content column includes trailing whitespace before newline is reached.
- Content column does not include any of the leading whitespace.
+ Content column consists of everything following the first non-white space character until the newline.
+ Content column includes trailing white space before newline is reached.
+ Content column does not include any of the leading white space.
No delimits are supported in the Content.
Key\:
- \s = whitespace, except newline.
- \b = either whitespace or printable, except newline.
- \q = non-whitespace or quoted whitespace with no whitespace outside of the quotes.
- \n = newline.
- * = zero or more occurrences.
- + = one or more occurrences.
+ "\s" = White space, except newline.
+ "\b" = Either white space or printable, except newline.
+ "\q" = Non-white space or quoted white space with no white space outside of the quotes.
+ "\n" = Newline.
+ "*" = Zero or more occurrences.
+ "+" = One or more occurrences.
Before Structure\:
+ ""
Structure\:
- \s*\q+\s+\b*\n
+ "\s*\q+\s+\b*\n"
After Structure\:
+ ""
Example\:
# fss-0000
#
Featureless Settings Specification: 0001 - Extended:
- Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as an object.
- Whitespace separates an Object from the Content.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ White space separates an Object from the Content.
An Object may be followed by a newline, in which case means that the Object has no Content.
- If only printing whitespace follows a valid Object, that Object is considered to have no Content.
+ If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
Content exists on the same line as the Object.
Content is represented as multiple Content columns.
- Content columns are whitespace separated parts within the Content and terminated by a newline.
+ Content columns are white space separated parts within the Content and terminated by a newline.
Any number of Content columns may exist in the Content until the newline is reached.
Key\:
- \s = whitespace, except newline.
- \b = either whitespace or printable, except newline.
- \q = non-whitespace or quoteded whitespace, no whitespace outside of quotes.
- \n = newline.
- * = 0 or more occurrences.
- + = one or more occurrences.
- ()* = grouping that repeats 0 or more times.
+ "\s" = White space, except newline.
+ "\b" = Either white space or printable, except newline.
+ "\q" = Non-white space or quoted white space, no white space outside of quotes.
+ "\n" = Newline.
+ "*" = Zero or more occurrences.
+ "+" = One or more occurrences.
+ "()*" = Grouping that repeats zero or more times.
Before Structure\:
+ ""
Structure\:
- \s*\q+\s+(\s*\q+)*\s*\n
+ "\s*\q+\s+(\s*\q+)*\s*\n"
After Structure\:
+ ""
Example\:
# fss-0001
#
# license: open-standard-license-1.0
#
-# Note: This file is in fss-0002 format and as a result the example below has to be escaped (can potentially be confusing when reading this raw).
-# The "This Does\\\:" below is actually "This Does\:" when processed by fss-0002.
Featureless Settings Specification: 0002 - Basic List:
- Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as an object.
- A colon followed by any whitespace until a newline terminates a valid Object.
- Non-whitespace may not follow the colon of a valid Object.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ A colon ":" (U+003A) followed by any white space until a newline terminates a valid Object.
+ Non-white space printable characters may not follow the colon of a valid Object.
Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until the next valid Object is found.
Any Content that could be interpreted as a valid Object must have the colon delimited.
There is no single-quote or double-quote delimitation in this specification.
Only the colon that would result in a valid Object can be delimited.
- Empty Objects are allowed, that is, the length of the object may be 0.
+ Empty Objects are allowed, that is, the length of the object may be zero.
Key\:
- \s = whitespace, except newline.
- \o = any printable character, except unescaped ':'.
- \l = any printable character or whitespace, except unescaped ':'.
- \c = either whitespace or printable, including newline, that not interpretable as an Object.
- \n = newline.
- * = 0 or more occurrences.
+ "\s" = White space, except newline.
+ "\o" = Any printable character, except unescaped ":" (U+003A).
+ "\l" = Any printable character or white space, except unescaped ":" (U+003A).
+ "\c" = Either white space or printable, including newline, that not interpretable as an Object.
+ "\n" = Newline.
+ "*" = Zero or more occurrences.
Before Structure\:
+ ""
Structure\:
- \s*\o\l*:\s*\n\c*\n*
+ "\s*\o\l*:\s*\n\c*\n*"
After Structure\:
+ ""
Example\:
# fss-0002
This Does\\\:
Second\:
Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
# Valid comments are still ignored.
Objects would be\:
This: does not need to be delimited.
This Does\:
2.1) Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
#
Featureless Settings Specification: 0003 - Extended List:
- Each Object starts at the beginning of a line and whitespace to the left of the Object is not treated as an object.
- An open-brace ({) followed by any whitespace until a newline terminates a possible valid Object.
- An Object is not considered fully valid until a valid close-brace (}) is found, designating the end of the Content.
- Non-whitespace may not follow the open-brace of a valid Object.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ An open-brace "{" (U+007B) followed by any white space until a newline terminates a possible valid Object.
+ An Object is not considered fully valid until a valid close-brace "}" (U+007D) is found, designating the end of the Content.
+ Non-white space printable characters may not follow the open-brace of a valid Object.
- Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace (}).
+ Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace "}".
Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
- Whitespace may follow a valid close-brace but a terminating newline must be present to designate a valid end of Content.
+ White space may follow a valid close-brace but a terminating newline must be present to designate a valid end of Content.
There is no single-quote or double-quote delimitation in this specification.
Only the open-brace that would result in a valid Object or the close-brace that would terminate valid Content can be delimited.
When inside potentially valid Content (which follows a valid Object) the open-brace cannot be delimited because this standard is not-recursive.
When not inside any potentially valid Content (that is, there is no previous unclosed Object), then the Object may be delimited.
- Likelwise, the close-brace may only be delimited if it is within any potentially valid Content.
+ Likewise, the close-brace may only be delimited if it is within any potentially valid Content.
- Each delimit slash in a delimitable open-brace is treated as a potential delimit such that two slashes represents a single delimited slash ('\\{' would represent '\{').
- Only the first delimit slash in a delimitable close-brace is treated as a potential delimit ('\\\}' would represent '\\}').
+ Each delimit slash in a delimitable open-brace is treated as a potential delimit such that two slashes represents a single delimited slash ("\\{" would represent "\{").
+ Only the first delimit slash in a delimitable close-brace is treated as a potential delimit ("\\\}" would represent "\\}").
- Empty Objects are allowed, that is, the length of the object may be 0.
+ Empty Objects are allowed, that is, the length of the object may be zero.
Key\:
- \s = whitespace, except newline.
- \o = any printable character, except unescaped '{'.
- \l = any printable character or whitespace, except unescaped '}'.
- \c = either whitespace or printable, including newline, that is not interpretable as an Object.
- \n = newline.
- * = 0 or more occurrences.
+ "\s" = White space, except newline.
+ "\o" = Any printable character, except unescaped "{" (U+007B).
+ "\l" = Any printable character or white space, except unescaped "}" (U+007D).
+ "\c" = Either white space or printable, including newline, that is not interpretable as an Object.
+ "\n" = Newline.
+ "*" = Zero or more occurrences.
Before Structure\:
+ ""
Structure\:
- \s*\o\l*{\s*\n\c*\n\s*}\s*\n
+ "\s*\o\l*{\s*\n\c*\n\s*}\s*\n"
After Structure\:
+ ""
Example\:
# fss-0003
Second {
Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
# Valid comments are still ignored.
}
This: does not need to be delimited.
}
2.1) Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
#
Featureless Settings Specification: 0004 - Very Basic List:
- This is a fss-0002 Basic List whose Content is then processed as fss-0000 Basic.
+ This is a "FSS-0002 (Basic List)" whose Content is then processed as "FSS-0000 (Basic)".
- All Basic List (fss-0002) escapes are applied before any Basic (fss-0000) is identified.
+ All "FSS-0002 (Basic List)" escapes are applied before any "FSS-0000 (Basic)" is identified.
See the fss-0000.txt and fss-0002.txt specification files for details on the syntax rules.
This Does\\\:
Second\:
Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
# Valid comments are still ignored.
Outer Objects would be\:
1.3.1) Does\:
2.1.1) until EOS/EOF.
- 2.2.1) whitespace, including newline (and leading whitespace) is "part of content."
+ 2.2.1) white space, including newline (and leading white space) is "part of content."
#
Featureless Settings Specification: 0005 - Somewhat Basic List:
- This is a fss-0002 Basic List whose Content is then processed as fss-0001 Extended.
+ This is a code"fss-0002 (Basic List)" whose Content is then processed as "FSS-0001 (Extended)".
- All Basic List (fss-0002) escapes are applied before any Extended (fss-0001) is identified.
+ All "FSS-0002 (Basic List)" escapes are applied before any "FSS-0001 (Extended)" is identified.
See the fss-0001.txt and fss-0002.txt specification files for details on the syntax rules.
This Does\\\:
Second\:
Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
# Valid comments are still ignored.
Outer Objects would be\:
2.1.1) until
2.1.2) EOS/EOF.
- 2.2.1) whitespace,
+ 2.2.1) white space,
2.2.2) including
2.2.3) newline
2.2.4) (and
2.2.5) leading
- 2.2.6) whitespace)
+ 2.2.6) white space)
2.2.7) is
2.2.8) part of content.
#
Featureless Settings Specification: 0006 - Somewhat Extended List:
- This is a fss-0003 Extended List whose Content is then processed as fss-0000 Basic.
+ This is a "FSS-0003 (Extended List)" whose Content is then processed as "FSS-0000 (Basic)".
- All Extended List (fss-0003) escapes are applied before any Basic (fss-0000) is identified.
+ All "FSS-0003 (Extended List)" escapes are applied before any "FSS-0000 (Basic)" is identified.
See the fss-0000.txt and fss-0003.txt specification files for details on the syntax rules.
Second {
Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
# Valid comments are still ignored.
}
1.3.1)
2.1.1) until EOS/EOF.
- 2.2.1) whitespace, including newline (and leading whitespace) is "part of content."
+ 2.2.1) white space, including newline (and leading white space) is "part of content."
#
Featureless Settings Specification: 0007 - Very Extended List:
- This is a fss-0003 Extended List whose Content is then processed as fss-0001 Extended.
+ This is a "FSS-0003 (Extended List)" whose Content is then processed as "FSS-0001 (Extended)".
- All Extended List (fss-0003) escapes are applied before any Extended (fss-0001) is identified.
+ All "FSS-0003 (Extended List)" escapes are applied before any "FSS-0001 (Extended)" is identified.
See the fss-0001.txt and fss-0003.txt specification files for details on the syntax rules.
Second {
Continues until EOS/EOF.
- All whitespace, including newline (and leading whitespace) is "part of content."
+ All white space, including newline (and leading white space) is "part of content."
# Valid comments are still ignored.
}
2.1.1) until
2.1.2) EOS/EOF.
- 2.2.1) whitespace,
+ 2.2.1) white space,
2.2.2) including
2.2.3) newline
2.2.4) (and
2.2.5) leading
- 2.2.6) whitespace)
+ 2.2.6) white space)
2.2.7) is
2.2.8) part of content.
#
Featureless Settings Specification: 0008 - Embedded List:
- This is a fss-0003 Extended List whose Content is then recursively processed as fss-0003 Extended List.
+ This is a "FSS-0003 (Extended List)" whose Content is then recursively processed as "FSS-0003 (Extended List)".
See the fss-0003.txt specification file for details on the syntax rules.
#
Featureless Settings Specification: 0009 - Reverse Mapping:
- This is based off of fss-0000 Basic, except the Object is at the end of the line.
+ This is based off of "FSS-0000 (Basic)", except the Object is at the end of the line.
- Each Object starts at the end of a line and whitespace to the left of the Object is not treated as part of the object.
- Whitespace separates an Object from the Content.
+ Each Object starts at the end of a line and white space to the left of the Object is not treated as part of the object.
+ White space separates an Object from the Content.
An Object may be preceded by a newline, in which case means that the Object has no Content.
- If only printing whitespace precedes a valid Object, that Object is considered to have no Content.
+ If only printing white spaces or non-printable characters precedes a valid Object, then that Object is considered to have no Content.
Content exists on the same line as the Object.
Content is represented as a single Content column that begins at a newline.
- Content column consists of everything following the first non-whitespace character at the start of the line until the Object is reached.
- Content column includes trailing whitespace before newline is reached.
- Content column does not include any of the whitespace between the last non-whitespace character and the start of the Object.
+ Content column consists of everything following the first non-white space character at the start of the line until the Object is reached.
+ Content column includes trailing white space before newline is reached.
+ Content column does not include any of the white space between the last non-white space character and the start of the Object.
No delimits are supported in the Content.
Key\:
- \s = whitespace, except newline.
- \b = either whitespace or printable, except newline.
- \q = non-whitespace or quoted whitespace with no whitespace outside of the quotes.
- \n = newline.
- * = zero or more occurrences.
- + = one or more occurrences.
+ "\s" = White space, except newline.
+ "\b" = Either white space or printable, except newline.
+ "\q" = Non-white space or quoted white space with no white space outside of the quotes.
+ "\n" = Newline.
+ "*" = Zero or more occurrences.
+ "+" = One or more occurrences.
Before Structure\:
+ ""
Structure\:
- \s*\b*\s+\q+\s*\n
+ "\s*\b*\s+\q+\s*\n"
After Structure\:
+ ""
Example\:
# fss-0009
#
Featureless Settings Specification: 000A - Extended Reverse Mapping:
- This is based off of fss-0001 Extended, except the Object is at the end of the line.
+ This is based off of "FSS-0001 (Extended)", except the Object is at the end of the line.
- Each Object starts at the end of a line and whitespace to the left of the Object is not treated as an object.
- Whitespace separates an Object from the Content.
+ Each Object starts at the end of a line and white space to the left of the Object is not treated as an object.
+ White space separates an Object from the Content.
An Object may be followed by a newline, in which case means that the Object has no Content.
- If only printing whitespace follows a valid Object, that Object is considered to have no Content.
+ If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
Content exists on the same line as the Object.
Content is represented as multiple Content columns.
- Content columns are whitespace separated parts within the Content is terminated by the start of the Object.
+ Content columns are white space separated parts within the Content is terminated by the start of the Object.
Any number of Content columns may exist in the Content until the Object is reached.
Key\:
- \s = whitespace, except newline.
- \b = either whitespace or printable, except newline.
- \q = non-whitespace or quoteded whitespace, no whitespace outside of quotes.
- \n = newline.
- * = 0 or more occurrences.
- + = one or more occurrences.
- ()* = grouping that repeats 0 or more times.
+ "\s" = White space, except newline.
+ "\b" = Either white space or printable, except newline.
+ "\q" = Non-white space or quoted white space, no white space outside of quotes.
+ "\n" = Newline.
+ "*" = Zero or more occurrences.
+ "+" = One or more occurrences.
+ "()*" = Grouping that repeats zero or more times.
Before Structure\:
+ ""
Structure\:
- \s*(\s*\q+)*\s+\q+\s*\n
+ "\s*(\s*\q+)*\s+\q+\s*\n"
After Structure\:
+ ""
Example\:
# fss-000a
#
Featureless Settings Specification: 000B - Simple List:
- This might be similar to fss-0008 - Embedded List, except it is an fss-0003 Extended List with a (non-recursive) fss-0002 Basic List inside the Content.
+ This is similar to "FSS-0008 (Embedded List)", except that it is an "FSS-0003 (Extended List)" with a (non-recursive) "FSS-0002 (Basic List)" inside the Content.
See the fss-0002.txt and fss-0003.txt specification files for details on the syntax rules.
#
Featureless Settings Specification: 000C - IKI Text:
- The IKI specifications are separate specifications from the FSS specification.
+ The IKI specifications are separate specifications from the FSS.
This is simply a more formal way to designate that this format utilizes IKI syntax.
- The IKI syntax may be used in any FSS specification.
+ The IKI syntax may be used in any FSS.
The IKI format may be added to the.
See the iki.txt specification for details on the IKI specifications.
Example\:
# fss-000c iki-0000
- This is a emphasis:"formal example" utilizing the FSS headers.
+ This is a formal example utilizing the FSS headers.
Example\:
# iki-0000
- This is a emphasis:"informal example" utilizing the IKI headers.
+ This is a informal example utilizing the IKI headers.
#
Featureless Settings Specification: 000D - Basic Rule:
- This is a special case that follows fss-0002 (Basic List), and different FSS formats inside this Basic List.
- This Basic List is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
+ This is a special case that follows "FSS-0002 (Basic List)", and different FSS formats inside this "FSS-0002 (Basic List)".
+ This "FSS-0002 (Basic List)" is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
- The Inner Content may be any of the following FSS formats: fss-0000 (Basic), fss-0001 (Extended), and fss-0003 (Extended List).
+ The Inner Content may be any of the following FSS formats: "FSS-0000 (Basic)", "FSS-0001 (Extended)", and "FSS-0003 (Extended List)".
The way in which each format is determined is first to see if the Inner Content Object would be a valid Extended List Object.
- If the Inner Content Object is not a valid Extended List Object, then check to see if it is an Basic/Extended Object.
+ If the Inner Content Object is not a valid "FSS-0003 (Extended List)" Object, then check to see if it is an "FSS-0000 (Basic)" or "FSS-0001 (Extended)" Object.
- The FSS Basic and FSS Extended Objects have the same format for Object names but the FSS Extended List Object is slightly different.
- Anything that would match an FSS Extended List Object must therefore be an FSS Extended List Object.
+ The "FSS-0000 (Basic)" and "FSS-0001 (Extended)" Objects have the same format for Object names but the "FSS-0003 (Extended List)" Object is slightly different.
+ Anything that would match an "FSS-0003 (Extended List)" Object must therefore be an "FSS-0003 (Extended List)" Object.
- This supports the use of iki-0000 (Unrestricted) but only within the Content of the outermost Basic List.
+ This supports the use of "iki-0000 (Unrestricted)" but only within the Content of the outermost "FSS-0002 (Basic List)".
That is to say, the IKI is only processed once.
Additional restrictions on the use of IKI syntax is allowed if explicitly defined in the implementing specification.
- This additional restriction may also include using a more restrictive IKI syntax, such as "iki-0001 (Basic IKI)".
+ This additional restriction may also include using a more restrictive IKI syntax, such as "iki-0001 (Basic)".
Anything implementing this specification may impose its own restrictions on when to determine if the Inner Content is what FSS format, based on Object names.
- See the fss-0000.txt, fss-0001.txt and fss-0003.txt specification files for details on the syntax rules.
+ See the fss-0000.txt, fss-0001.txt, and fss-0003.txt specification files for details on the syntax rules.
Example\:
# fss-000d
#
# license: open-standard-license-1.0
#
-#
-# Note: This file is in fss-0002 format and as a result the example below has to be escaped (can potentially be confusing when reading this raw).
-# The "header\:" in the example below is actually "header:" when processed by fss-0002.
Featureless Settings Specification: 000e - Payload:
- This is a fss-0002 Basic List with two required objects\:
- 1) "header".
- 2) "payload".
+ This is a "FSS-0002 (Basic List)" with two required objects\:
+ 1) header.
+ 2) payload.
- The header's Content is of type fss-0001 Extended.
- The payload's Content is of any type including raw binary data.
+ The header\:
+ - The header's Content is of type "FSS-0001 (Extended)".
+ - The header is recommended to have the Objects length, status, part, and total.
+ - The recommended length represents the size of the payload.
+ - The recommended part represents a single part of a set of packets for when the data being transmitted is split across multiple payloads.
+ - The recommended total represents the total number of parts representing a complete data transmitted across multiple payloads.
+ - The recommended status represents status codes (such as success or failure) and multiple.
+ - The Content for the recommended length and status are positive whole numbers (including zero) that may be in binary, octal, decimal, duodecimal, or hexidecimal numerical format.
- The payload is required to be the last list Object in the file.
- The payload is recommended to have its size designated in some manner in the "header".
- The designated size is recommended to use the fss-0001 Object "length".
- The fss-0001 Content "part" is suggested to be used for fss-0001 Object "length" to represent a part of a set of packets intended to represent a single object spread across multiple payloads.
- The fss-0001 Object "total" with the Content being a whole positive number is suggested to be used to represent the total number of packets that represent a whole.
- The fss-0001 Object "part" with the Content being a whole positive number is suggested to be used to represent the number identifying which part of the whole it is.
- The payload may contain anything, including NULL characters.
- The payload is terminated by the EOF (end of file) character or when a some designated length is reached.
- The length used to designate the payload size does not necessarily have to be defined in the 'header".
- That is to say, if the payload is expected to be of some pre-defined or static length then a length does even if that length is not provided in the "header".
- Nothing in the payload may be considered a valid list Object and therefore there will be no escaping allowed (No further fss-0002 Basic List Objects are allowed at this point).
- Comments are not considered comments inside the payload and are instead considered part of the payload, as-is.
- The payload may be empty (length may be zero), but the list Object "payload" must still exist.
+ The payload\:
+ - The payload's Content may contain anything, including raw binary data.
+ - The payload is required to be the last list Object in the file.
+ - The payload is recommended to have its size designated in some manner in the header (such as with the recommended length).
+ - The payload is terminated by the EOF character or by the recommended length header.
+ - The payload may be empty (length may be zero), but the list Object payload must still exist.
+ - Nothing in the payload may be considered a valid list Object by the outer "FSS-0002 (Basic List)" and therefore escaping is unnecessary (No further processing by the outer "FSS-0002 (Basic List)" is allowed at this point).
+ - Comments in the payload are not considered comments and are instead considered part of the payload, as-is.
+ - Essentially, the payload should be treated as binary data embedded in a text file.
- The length and status may be in binary, octal, decimal, duodecimal, or hexidecimal numerical format.
- The status may alternatively be represented as the status name string.
- What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent FLL status codes.
- The status, when representing an FLL status code as a number, may contain error and warning bit.
- The status, when representing an FLL status code as a number, the status number is binary sensitive and may not be portable across binaries or systems.
- For FLL status codes, consider using status as a name string to ensure cross-system or cross-binary compatibility.
+ The recommended length header Object used to designate the payload size does not necessarily have to be defined in the header.
+ That is to say, if the payload is expected to be of some pre-defined or static length then a length does not need to be provided in the header.
- Other than the reserved list Objects "header" and "payload" any other valid Object may be specified.
+ The recommended status header Object may be a string, such as "F_none", or a positive whole number.
+ What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent FLL status code.
+ - The FLL status code is a 16-bit digit whose first two high-order bits represent error and warning ( representing signal).
+ - The FLL status code as a number is binary sensitive and may not be portable across binaries or systems.
+ - For best portability, consider using status as a name string to ensure cross-system or cross-binary compatibility.
Example\:
# fss-000e
#
Featureless Settings Specification: 000f - Simple Packet:
- This is a network packet format that contains FSS-000E (Payload) within it.
+ This is a network packet format that contains "FSS-000e (Payload)" within it.
The Simple Packet structure is described in blocks, of which are structured in bytes.
The Control Block is the first block in the packet and is considered endianless.
There exists only a single byte within the Control Block.
- Regardless of the endianness of the packet, the leftmost bit is always the "string" or "binary" bit.
+ Regardless of the endianness of the packet, the leftmost bit is always the string or binary bit.
The second bit following that bit represents the endianness bit.
- The "string" or "binary" bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in binary format.
+ The string or binary bit, a value of 0 designates that the packet is in string format and a value of 1 designates that the packet is in binary format.
While the packet might be considered to be in string format, it is technically always in binary format due to the Control Block and Size Block.
- This means that the bit designating the packet as a "string" packet or a "binary" packet is referring to whether or not the Payload Block is in "string" format or is in "binary" format.
+ This means that the bit designating the packet as a string packet or a binary packet is referring to whether or not the Payload Block is in string format or is in binary format.
The endianness bit designates whether or not the packet is in big endian or little endian format.
A bit value of 0 designates that this packet is in little endian and a value of 1 designates that this packet is in big endian format.
The size represents number of bytes in the file.
The Control Block is 1 byte long and the Size Block is 4 bytes long and so the maximum available size is (2^32)-6.
- The Payload Block is not defined by this standard of that that it exists and should be in FSS-000E (Payload) format.
- The FSS-000E (Payload) may be represented in either string format or binary format.
- The FSS-000E (Payload) may contain multiple "header"s but may only contain a single "payload".
- With this in mind, it is recommended that only a single "header" be supported in the Payload Block.
+ The Payload Block is not defined by this standard of that that it exists and should be in "FSS-000e (Payload)" format.
+ The "FSS-000e (Payload)" may be represented in either string format or binary format.
+ The "FSS-000e (Payload)" may contain multiple header(s) but may only contain a single payload.
+ With this in mind, it is recommended that only a single header be supported in the Payload Block.
+
+ See the fss-000e.txt specification file for details on the syntax rules for the Payload Block.
Example Packet Structure\:
[ Control Block ] [ Size Block ] [ Payload Block ]
#
Featureless Settings Specifications:
- A Keep It Simple Stupid specifications for configuration/settings files.
+ The Featureless Settings Specifications describe a set of standards designed around the age-old design principle referred to as Keep It Simple Stupid, aka KISS. The FSS are primarily intended for settings files but are extensible enough to be used beyond that.
- This specification defines the following\:
+ The FSS defines the following\:
- Will consist of numerous different kinds of specification files, depending on the type of information stored.
- - As with the practice of "#!/bin/bash", the setting files SHOULD have the following: "# fss-????" format, such as "# fss-0001".
+ - As with the practice of "#!/bin/bash", the setting files should have the following: "# fss-????" format, such as "# fss-0001".
- Multiple sub-standards may be appended to the FSS header, using the same format structure, such as supporting IKI: "# fss-0000 iki-0000" or HTML5: "# fss-0000 html-0005".
- - With the ? representing the (hexadecimal/base-16) number that represents the particular specification structure.
- - All settings specifications SHOULD avoid any form of noise, relative to the data being stored.
+ - With the "?" representing the (hexadecimal/base-16) number that represents the particular specification structure.
+ - All settings specifications should avoid any form of noise, relative to the data being stored.
- XML would be considered anti-KISS due to the extreme level of noise generated by the XML language (not easy to read).
- The settings files are setup so that they should (reasonably) produce easy readability on both the console and in a GUI.
+ - The specifications should strive for completeness (see the completeness theorem).
- The most basic form of FSS specifications consist of two main parts: an "Object" and the "Content".
- - Object: Considered the name or identifier of some particular data; Objects do not need an associated Content.
- - Content: The data associated with a given Object; all Content MUST have an associated Object.
+ The most basic form of FSS consists of two main parts: an Object and the Content.
+ - Object: Considered the name or identifier of some property or data; Objects do not require an associated Content.
+ - Content: The data associated with a given Object; all Content must have an associated Object.
Objects and Contents can include any characters allowed by the specifications.
The specification may choose how a given Object or Content are represented and parsed.
- For example, in fss-0000 (Basic), Content is treated as a single item whereas in fss-0001 (Extended), Content is broken apart in multiple sub parts.
+ For example, in "FSS-0000 (Basic)", Content is treated as a single item whereas in "FSS-0001 (Extended)", Content is broken apart in multiple sub-parts.
Contents may be broken up into zero or more discrete sets of Content.
Each of these discrete sets of Content are referred to as a column.
- These columns do not need to be setup in a column structure, the word "column" is simply used as a grouping terminology.
+ These columns do not need to be setup in a column structure, the word column is simply used as a grouping terminology.
While a Content refers to the entire set, a column (more specifically, a Content column) refers to the individual discrete sets within the Content.
- For example, in fss-000 (Basic) the entire Content may be further represented as a single column.
- For example, in fss-001 (Extended) the entire Content may be further represented as multiple columns.
+ For example, in "FSS-000 (Basic)" the entire Content may be further represented as a single column.
+ For example, in "FSS-001 (Extended)" the entire Content may be further represented as multiple columns.
In all cases, specifications that separate Objects from Contents using white space, the first white space separating the Object and Content must not be considered part of the Object nor part of the Content.
All spaces after the first separating white space is generally ignored until the first non white space character is found, unless otherwise specified.
- Unless otherwise specified, all specifications are newline sensitive ('\n' only).
- Newline characters are only '\n' and are never anything else ('\r' is not considered newline in any manner).
- Whitespaces characters that are printable, such as tabs and spaces, must be considered the same type for the purposes of parsing.
- Non-printing white spaces characters (zero-width characters) are ignored, are treated as placeholders for processing, or are considered part of the appropriate character if they are Unicode combining characters (this includes zero-width punctutations characters and similar).
- In terms of processing, it is recommended that the NULL character is not considered the end of a string, but this is only a suggestion.
+ Unless otherwise specified, all specifications are newline sensitive ("\n" only).
+ Newline characters are only "\n" and are never anything else ("\r" is not considered newline in any manner).
+ These specifications refer to characters that have printable representation as printable.
+ These specifications refer to characters that have no printable representation as non-printable.
+ White spaces characters that are printable, such as tabs and spaces, must be considered the same type for the purposes of parsing.
+ Non-printing white spaces characters (zero-width characters) are ignored, are treated as placeholders for processing with the exception of combining characters.
+ White spaces that use combining characters result in printable characters and the resulting combination is treated as not white space.
+ Zero-width characters that use combining characters are treated as non-printing characters and are skipped.
+ In terms of processing, it is recommended that the "NULL" character is not considered the end of a string, but this is only a suggestion.
+ Any specification may chose to limit, restrict, or otherwise prohibit special Unicode characters such as combining characters or zero-width characters.
Unless otherwise specified, newlines designate the potential start (or end) of an Object or Content.
Unless otherwise specified, white space immediately both before (and after, outside of the terminating quote) an Object is not considered part of the Object.
This simplifies identifying the object, use quoted Objects to support white space before/after an object for styling purposes.
- Unless otherwise specified, quotes may only be either a single quote (') or a double quote (") and only a backslash '\' may be used as a delimiter.
- For example, fss-0000 (Basic)\:
+ Unless otherwise specified, quotes may only be either a single quote "'" or a double quote """ and only a backslash "\" may be used as a delimiter.
+ For example, "FSS-0000 (Basic)"\:
\"Object 1" has content starting at the '1', with an Object named '"Object'.
\\"Object 1" has content starting at the '1', with an Object named '\"Object'.
"Object 1\" is an unterminated object due to the escaped closing quote.
Unless otherwise specified, character/data delimits are performed only when required and not unilaterally.
In the case of Objects, delimits would only apply when that Object could be potentially identified as an Object.
- For example, fss-0001 (Extended) needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data MUST NOT be delimited.
+ For example, "FSS-0001 (Extended)" needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data must not be delimited.
Such as these following three lines\:
"Object 1" "This is a single quoted Content." \"Additional unquoted Content."
Object_2 This is multiple" Contents and the trailing quote does not need to be delimited.
Those encodings must only support the appropriate characters required by a given standard for differentiating Objects, Contents, and delimits.
All specifications do assume ASCII and Unicode support.
- Unless otherwise specified, comments are designated by the pound symbol '#' but only if only white space is to the left of the pound or the pound '#' is at the start of the line.
+ Unless otherwise specified, comments are designated by the pound symbol "#" but only if only white space is to the left of the pound or the pound "#" is at the start of the line.
There is no support for inline comments.
- Unless otherwise specified, the start comment may be delimited by '\' in the same manner as Objects and Contents are.
- This delimit only applies to the start of a comment (the pound '#' character) as there is no terminating character for a comment (other than a newline '\n').
+ Unless otherwise specified, the start comment may be delimited by "" in the same manner as Objects and Contents are.
+ This delimit only applies to the start of a comment (the pound character:"#" character) as there is no terminating character for a comment (other than a newline "\n").
A line containing a valid comment is in its entirety ignored.
- This means that if there is white space before the designation symbol (the pound '#' character) then that white space is ignored.
+ This means that if there is white space before the designation symbol (the pound "#" character) then that white space is ignored.
- Unless otherwise specified, all designation characters MUST represent ASCII codes.
- With designation characters being any character code used to designate how to identify an Object or Content (such as a colon ':' at the end of a basic list).
+ Unless otherwise specified, all designation characters must represent ASCII codes.
+ With designation characters being any character code used to designate how to identify an Object or Content (such as a colon ":" at the end of a basic list).
This keeps the processing and logic simple and safe, for both UTF-8 and ASCII.
- Whitespace used for designation characters MUST include support for UTF-8 white space characters, unless otherwise specified.
+ White space used for designation characters must include support for UTF-8 white space characters, unless otherwise specified.
However, these white space used as a designation character, must be printing white space that are not combining white space characters.
- Any visible/graph character that is considered a white space (such as U+1680 ' ') is not to be considered a white space, unless otherwise specified.
+ Any visible/graph character that is considered a white space (such as U+1680 " ") is not to be considered a white space, unless otherwise specified.
When used for syntax matching purposes, zero-width Unicode characters are only to be considered zero-width unless otherwise specified.
- For example, the "invisible plus" character (U+2064) is not to be considered as a plus.
+ For example, the invisible plus character (U+2064) is not to be considered as a plus.
The UTF-8 BOM is not allowed as a Byte Order Mark; instead, it must always be treated as the character represented by its code (unless explicitly allowed to represent a BOM by a standard).
- The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011) (unless otherwise specified).
+ The only Unicode dash-like characters allowed as a dash are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011) (unless otherwise specified).
- In any specification where security is intended, if there exists a Unicode character that matches an ASCII character, that Unicode character MAY be prohibited by that standard in favor of the ASCII equivalent.
+ In any specification where security is intended, if there exists a Unicode character that matches an ASCII character, that Unicode character may be prohibited by that standard in favor of the ASCII equivalent.
One such example is in the case of a URL, where the name could be used to trick a person (http://this-site.com/ vs http://this‐site.com/).
This (potential insecure behavior) is allowed in general because a well written program would be able to detect and communicate the possible misunderstanding and thereby avoid mistakes without imposing any character restrictions.
- This is a common behavior for security reasons, each character used for any special purposes must be visibly distinct, with white space and non-printing characters as the exception to the words "visibly distinct".
+ This is a common behavior for security reasons, each character used for any special purposes must be visibly distinct, with white space and non-printing characters as the exception to the words visibly distinct.
- The follow specifications are defined in this project.
- Each of these specifications has a common name associated with the specification number.
+ The following are core specifications (each with a common name associated with the specification number)\:
- fss-0000: Basic
- fss-0001: Extended
- fss-0002: Basic List
- fss-0009: Reverse Mapping
- fss-000a: Extended Reverse Mapping
- fss-000b: Simple List
- - fss-000c: Iki Text
+ - fss-000c: IKI Text
- fss-000d: Basic Rule
- fss-000e: Payload
- fss-000f: Simple Packet
This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and URLs.
Vocabulary\:
- - address: any mailing address, except for e-mail and URI.
- - code: all text contained within represent code and should be presented as such.
- - email: any valid e-mail address.
- - phone: any valid phone number.
- - quote: all text within represents some quote.
- - uri: any valid URI (allows URL and URN).
- - url: any valid URL.
- - urn: any valid URN.
- - var: all text contained within represents some sort of variable.
+ - address: Any mailing address, except for e-mail and URI.
+ - code: All text contained within represent code and should be presented as such.
+ - email: Any valid e-mail address.
+ - phone: Any valid phone number.
+ - quote: All text within represents some quote.
+ - uri: Any valid URI (allows URL and URN).
+ - url: Any valid URL.
+ - urn: Any valid URN.
+ - var: All text contained within represents some sort of variable.
See the iki.txt specification file for details on the syntax rules.
This vocabulary may be further extended but must at least support the taxonomy defined here.
Flexibility on interpretation is intended so that the context can be more fine-tuned and customized.
- The taxonomy for the "context", "define", and "parameter" are intentionally not defined here and left open.
+ The taxonomy for the context, define, and parameter are intentionally not defined here and left open.
One utilizing this should document the taxonomy for each of these as desired.
Vocabulary\:
- - context: intended to be used for printing (or tagging) context codes before and after text, such as with color context.
- - define: intended to be used for global properties, much like a C/C++ #define.
- - parameter: intended to be used for parameters or variables.
+ - context: Intended to be used for printing (or tagging) context codes before and after text, such as with color context.
+ - define: Intended to be used for global properties, much like a C/C++ "#define".
+ - parameter: Intended to be used for parameters or variables.
See the iki.txt specification file for details on the syntax rules.
IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
- The vocabulary represents a list of allowed object names that may also have specific contextual meaning defined by a given IKI specification.
- The variable name is considered the "Object".
- The variable variable is considered the "Content".
+ The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
+ The variable name is considered the Object.
+ The variable value is considered the Content.
- The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
- Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+ The IKI format will use "iki-0000" to represent an IKI with no explicitly defined vocabulary.
+ Whereas "iki-0001" and beyond represent a specific IKI vocabulary.
A potential IKI variable name starts on word (or "_", "-", "+") characters.
- Whitespace and non-word (and non "_", "-", "+") character punctuations may not exist as part of the variable name.
+ White space and non-word (and non "_", "-", "+") character punctuations may not exist as part of the variable name.
The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
- Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash "\" before the colon ":" that is before the opening quote (single or double).
+ Any potential IKI data must be escaped to make it treated as non-IKI data by prepending a backslash "\" before the colon ":" that is before the opening quote (single or double). Potential IKI data refers to any valid IKI sequence without considering the closing single quote "'" or closing double quote """.
Unicode punctuation connector characters are supported just like "_", except when they connect outside the current line (such as U+FE33 "︳").
- Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid '_', '-', or '+' Unicode equivalents.
+ Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid "_", "-", or "+" Unicode equivalents.
Key\:
- \o = any printable word character, including "_", "-", "+" (and Unicode equivalents).
- \c = any character, including whitespace and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
- \q = either a single quote (') or a double quote (").
- \x = any character.
- \W = any non-word character, discluding "_", "-", "+" (and Unicode equivalents).
- \e = an optional escape sequence of any number of backslashes, such as "\".
- * = 0 or more occurrences.
- ~ = one or more occurrences, or 0 if at start of file.
+ "\o" = any printable word character, including "_", "-", "+" (and Unicode equivalents).
+ "\c" = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
+ "\q" = either a single quote "'" or a double quote """.
+ "\x" = any character.
+ "\W" = any non-word character, discluding "_", "-", "+" (and Unicode equivalents).
+ "\e" = an optional escape sequence of any number of backslashes, such as "\".
+ "*" = zero or more occurrences.
+ "~" = one or more occurrences, or zero if at start of file.
Before Structure\:
- \x*\W~\*:*
+ "\x*\W~\*:*"
Structure\:
- \o\e:\q\c\q
+ "\o\e:\q\c\q"
After Structure\:
+ ""
Example\:
- # fss-000c iki-0000
+ code:'# fss-000c iki-0000
This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
- The following emphasis\:"is escaped to not be treated as IKI data".
+ The following emphasis:"is escaped to not be treated as IKI data".'
Objects would be\:
1) emphasis
1.1) emphasize some text
2.1) http://www.example.com/url with space/
3.1) const char *string = "My \"quoted\" C string.";
+
+ The following are core specifications (each with a common name associated with the specification number)\:
+ - fss-0000: Unrestricted
+ - fss-0001: Basic
+ - fss-0002: Simple Script
<div class="nav-item block back">
<a href="fll.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Featureless Linux Library</div>
</div>
<div class="nav-item block">
<div class="nav-item block back">
<a href="fll.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">Featureless Linux Library</div>
<div class="nav-text unlink">Specifications</div>
</div>
<div class="nav-item block">
- <a href="fll/specifications.html#about" class="nav-text link">About</a>
- </div>
- <div class="nav-item block">
<a href="fll/specifications.html#fss" class="nav-text link">Featureless Settings Specifications</a>
</div>
<div class="nav-item block">
</p>
<ul>
<li>Will consist of numerous different kinds of specification files, depending on the type of information stored.</li>
- <li>As with the practice of "<code class="code">#!/bin/bash</code>", the setting files <em>should</em> have the following: "<code class="code"># fss-????" format, such as "# fss-0001</code>".</li>
- <li>Multiple sub-standards may be appended to the FSS header, using the same format structure, such as supporting IKI: "# fss-0000 iki-0000" or HTML5: "# fss-0000 html-0005".</li>
+ <li>As with the practice of "<code class="code">#!/bin/bash</code>", the setting files <em>should</em> have the following: "<code class="code"># fss-????" format, such as "# FSS-0001</code>".</li>
+ <li>Multiple sub-standards may be appended to the FSS header, using the same format structure, such as supporting IKI: "# FSS-0000 iki-0000" or HTML5: "# FSS-0000 html-0005".</li>
<li>With the <code class="code">?</code> representing the (hexadecimal/base-16) number that represents the particular specification structure.</li>
<li>All settings specifications <em>should</em> avoid any form of noise, relative to the data being stored.</li>
<li><abbr title="Extensible Markup Language">XML</abbr> would be considered anti-<abbr title="Keep It Simple Stupid">KISS</abbr> due to the extreme level of noise generated by the <abbr title="Extensible Markup Language">XML</abbr> language (not easy to read).</li>
<p class="p">
Objects and Contents can include any characters allowed by the specifications.
The specification may choose how a given Object or Content are represented and parsed.
- For example, in <code class="code">fss-0000 (Basic)</code>, Content is treated as a single item whereas in <code class="code">fss-0001 (Extended)</code>, Content is broken apart in multiple sub-parts.
+ For example, in <code class="code">FSS-0000 (Basic)</code>, Content is treated as a single item whereas in <code class="code">FSS-0001 (Extended)</code>, Content is broken apart in multiple sub-parts.
</p>
<p class="p">
Contents may be broken up into zero or more discrete sets of Content.
Unless otherwise specified, quotes may only be either a single quote <code class="code">'</code> or a double quote <code class="code">"</code> and only a backslash <code class="code">\</code> may be used as a delimiter.
</p>
<p class="p">
- For example, <code class="code">fss-0000 (Basic)</code>:
+ For example, <code class="code">FSS-0000 (Basic)</code>:
</p>
<ul>
<li><code class="code">\"Object 1"</code> has content starting at the <code class="code">1</code>, with an Object named <code class="code">"Object</code>.</li>
<p class="p">
Unless otherwise specified, character/data delimits are performed only when required and not unilaterally.
In the case of Objects, delimits would only apply when that Object could be potentially identified as an Object.
- For example, <code class="code">fss-0001 (Extended)</code> needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data <em>must not</em> be delimited.
+ For example, <code class="code">FSS-0001 (Extended)</code> needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data <em>must not</em> be delimited.
</p>
<p class="p">
Such as these following three lines:
The following are core specifications (each with a common name associated with the specification number):
</p>
<ul>
- <li><a href="fll/specifications/fss/fss-0000.html" class="link">fss-0000: Basic</a></li>
- <li><a href="fll/specifications/fss/fss-0001.html" class="link">fss-0001: Extended</a></li>
- <li><a href="fll/specifications/fss/fss-0002.html" class="link">fss-0002: Basic List</a></li>
- <li><a href="fll/specifications/fss/fss-0003.html" class="link">fss-0003: Extended List</a></li>
- <li><a href="fll/specifications/fss/fss-0004.html" class="link">fss-0004: Very Basic List</a></li>
- <li><a href="fll/specifications/fss/fss-0005.html" class="link">fss-0005: Somewhat Basic List</a></li>
- <li><a href="fll/specifications/fss/fss-0006.html" class="link">fss-0006: Somewhat Extended List</a></li>
- <li><a href="fll/specifications/fss/fss-0007.html" class="link">fss-0007: Very Extended List</a></li>
- <li><a href="fll/specifications/fss/fss-0008.html" class="link">fss-0008: Embedded List</a></li>
- <li><a href="fll/specifications/fss/fss-0009.html" class="link">fss-0009: Reverse Mapping</a></li>
- <li><a href="fll/specifications/fss/fss-000a.html" class="link">fss-000a: Extended Reverse Mapping</a></li>
- <li><a href="fll/specifications/fss/fss-000b.html" class="link">fss-000b: Simple List</a></li>
- <li><a href="fll/specifications/fss/fss-000c.html" class="link">fss-000c: Iki Text</a></li>
- <li><a href="fll/specifications/fss/fss-000d.html" class="link">fss-000d: Basic Rule</a></li>
- <li><a href="fll/specifications/fss/fss-000e.html" class="link">fss-000e: Payload</a></li>
- <li><a href="fll/specifications/fss/fss-000f.html" class="link">fss-000f: Simple Packet</a></li>
+ <li><a href="fll/specifications/fss/fss-0000.html" class="link">FSS-0000: Basic</a></li>
+ <li><a href="fll/specifications/fss/fss-0001.html" class="link">FSS-0001: Extended</a></li>
+ <li><a href="fll/specifications/fss/fss-0002.html" class="link">FSS-0002: Basic List</a></li>
+ <li><a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003: Extended List</a></li>
+ <li><a href="fll/specifications/fss/fss-0004.html" class="link">FSS-0004: Very Basic List</a></li>
+ <li><a href="fll/specifications/fss/fss-0005.html" class="link">FSS-0005: Somewhat Basic List</a></li>
+ <li><a href="fll/specifications/fss/fss-0006.html" class="link">FSS-0006: Somewhat Extended List</a></li>
+ <li><a href="fll/specifications/fss/fss-0007.html" class="link">FSS-0007: Very Extended List</a></li>
+ <li><a href="fll/specifications/fss/fss-0008.html" class="link">FSS-0008: Embedded List</a></li>
+ <li><a href="fll/specifications/fss/fss-0009.html" class="link">FSS-0009: Reverse Mapping</a></li>
+ <li><a href="fll/specifications/fss/fss-000a.html" class="link">FSS-000A: Extended Reverse Mapping</a></li>
+ <li><a href="fll/specifications/fss/fss-000b.html" class="link">FSS-000B: Simple List</a></li>
+ <li><a href="fll/specifications/fss/fss-000c.html" class="link">FSS-000C: Iki Text</a></li>
+ <li><a href="fll/specifications/fss/fss-000d.html" class="link">FSS-000D: Basic Rule</a></li>
+ <li><a href="fll/specifications/fss/fss-000e.html" class="link">FSS-000E: Payload</a></li>
+ <li><a href="fll/specifications/fss/fss-000f.html" class="link">FSS-000F: Simple Packet</a></li>
</ul>
</div>
</section>
<p class="p">
Example File:
</p><pre class="preserve">
-# fss-000c iki-0000
+# FSS-000C iki-0000
This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<!DOCTYPE html>
<html lang="en">
<head>
- <title>FLL - Specifications - FSS-000A (Extended Reverse Mapping)</title>
+ <title>FLL - Specifications - fss-000a (Extended Reverse Mapping)</title>
<base href="../../../">
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block">
- <a href="fll/specifications/fss/fss-000a.html#fss-000a" class="nav-text link"><div>FSS-000A</div><div>(Extended Reverse Mapping)</div></a>
+ <a href="fll/specifications/fss/fss-000a.html#fss-000a" class="nav-text link"><div>fss-000a</div><div>(Extended Reverse Mapping)</div></a>
</div>
<div class="nav-item block ellipses">
<a href="fll/specifications/fss/fss-000a.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
<section id="fss-000a" class="section">
<header class="section-header header">
- <h2 class="section-title h h2">FSS-000A (Extended Reverse Mapping)</h2>
+ <h2 class="section-title h h2">fss-000a (Extended Reverse Mapping)</h2>
</header>
<div class="section-content">
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">FSS</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">IKI</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">IKI</div>
</div>
<div class="nav-item block back">
<a href="fll/specifications.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">FLL Specification</div>
<div class="nav-text unlink">IKI</div>
</div>
<div class="nav-item block back">
<a href="news.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">2022 / 05 / 01</div>
<div class="nav-text unlink">Website Redesign</div>
</div>
<div class="nav-item block back">
<a href="news.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">2022 / 05 / 06</div>
<div class="nav-text unlink">Basic Program Documentation</div>
</div>
<div class="nav-item block back">
<a href="news.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">2022 / 05 / 16</div>
<div class="nav-text unlink">FLL Specifications Added</div>
</div>
<div class="nav-item block back">
<a href="news.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">2022 / 06 / 04</div>
<div class="nav-text unlink">Librem to Freedom</div>
</div>
<div class="nav-item block back">
<a href="news.html" class="nav-text link back">Back</a>
</div>
- <div class="nav-item block unlink">
+ <div class="nav-item block highlight unlink">
<div class="nav-text notice">2022 / 07 / 02</div>
<div class="nav-text unlink">FLL 0.5.10 Release</div>
</div>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0000 (Basic).<br>
- This performs read operations related to the FSS-0000 (Basic) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0000 (Basic)</code>.<br>
+ This performs read operations related to the <code class="code">FSS-0000 (Basic)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0000 (Basic).<br>
- This performs write operations related to the FSS-0002 (Basic) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0000 (Basic)</code>.<br>
+ This performs write operations related to the <code class="code">FSS-0002 (Basic)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0002 (Basic List).<br>
- This performs read operations related to the FSS-0002 (Basic List) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0002 (Basic List)</code>.<br>
+ This performs read operations related to the <code class="code">FSS-0002 (Basic List)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0002 (Basic List).<br>
- This performs write operations related to the FSS-0002 (Basic List) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0002 (Basic List)</code>.<br>
+ This performs write operations related to the <code class="code">FSS-0002 (Basic List)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0008 (Embedded List).<br>
- This performs read operations related to the FSS-0008 (Embedded List) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0008 (Embedded List)</code>.<br>
+ This performs read operations related to the <code class="code">FSS-0008 (Embedded List)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0008 (Embedded List).<br>
- This performs write operations related to the FSS-0008 (Embedded List) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0008 (Embedded List)</code>.<br>
+ This performs write operations related to the <code class="code">FSS-0008 (Embedded List)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0001 (Extended).<br>
- This performs read operations related to the FSS-0001 (Extended) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0001 (Extended)</code>.<br>
+ This performs read operations related to the <code class="code">FSS-0001 (Extended)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0001 (Extended).<br>
- This performs write operations related to the FSS-0001 (Extended) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0001 (Extended)</code>.<br>
+ This performs write operations related to the <code class="code">FSS-0001 (Extended)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0003 (Extended List).<br>
- This performs read operations related to the FSS-0003 (Extended List) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0003 (Extended List)</code>.<br>
+ This performs read operations related to the <code class="code">FSS-0003 (Extended List)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-0003 (Extended List).<br>
- This performs write operations related to the FSS-0003 (Extended List) standard.
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-0003 (Extended List)</code>.<br>
+ This performs write operations related to the <code class="code">FSS-0003 (Extended List)</code> standard.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-000E (Payload).<br>
- This performs read operations related to the FSS-000E (Payload) standard.<br>
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-000E (Payload)</code>.<br>
+ This performs read operations related to the <code class="code">FSS-000E (Payload)</code> standard.<br>
</p>
<p class="p">
- The FSS-000E (Payload) is focused on network communication and is intended to be used inside a network packet.<br>
+ The <code class="code">FSS-000E (Payload)</code> is focused on network communication and is intended to be used inside a network packet.<br>
This program can be used to manually read a network packet or data from the network.
</p>
</div>
</header>
<div class="article-content">
<p class="p">
- This is a program implementing the Featureless Settings Specification FSS-000E (Payload).<br>
- This performs write operations related to the FSS-000E (Payload) standard.<br>
+ This is a program implementing the Featureless Settings Specification <code class="code">FSS-000E (Payload)</code>.<br>
+ This performs write operations related to the <code class="code">FSS-000E (Payload)</code> standard.<br>
</p>
<p class="p">
- The FSS-000E (Payload) is focused on network communication and is intended to be used inside a network packet.<br>
+ The <code class="code">FSS-000E (Payload)</code> is focused on network communication and is intended to be used inside a network packet.<br>
This program can be used to manually write the payload portion of a network packet.
</p>
</div>
</header>
<div class="article-content">
<p class="p">
- Similar to the <abbr title="Featureless Settings Specifications">FSS</abbr> Read programs, this is a program implementing the Featureless Settings Specification IKI-0000 (Unrestricted).<br>
- This performs read operations related to the Unrestricted IKI standard (IKI-0000).<br>
+ Similar to the <abbr title="Featureless Settings Specifications">FSS</abbr> Read programs, this is a program implementing the Featureless Settings Specification <code class="code">iki-0000 (Unrestricted)</code>.<br>
+ This performs read operations related to the <code class="code">iki-0000 (Unrestricted)</code> standard.<br>
</p>
<p class="p">
The IKI settings specification plays on how it is simpler than a Wiki syntax.<br>
</header>
<div class="article-content">
<p class="p">
- Similar to the <abbr title="Featureless Settings Specifications">FSS</abbr> Write programs, this is a program implementing the Featureless Settings Specification IKI-0000 (Unrestricted).<br>
- This performs write operations related to the Unrestricted IKI standard (IKI-0000).<br>
+ Similar to the <abbr title="Featureless Settings Specifications">FSS</abbr> Write programs, this is a program implementing the Featureless Settings Specification <code class="code">iki-0000 (Unrestricted)</code>.<br>
+ This performs write operations related to the <code class="code">iki-0000 (Unrestricted)</code> standard.<br>
</p>
<p class="p">
The IKI settings specification plays on how it is simpler than a Wiki syntax.<br>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - Documentation</title>
+
+ <base href="">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Documentation of numerous Kevux Systems projects and software.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Open-Source, Documentation">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
+ <link type="text/css" rel="stylesheet" media="only screen" href="css/kevux-screen.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px)" href="css/kevux-screen-desktop.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:500px)" href="css/kevux-screen-mobile.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:1201px)" href="css/kevux-screen-large.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:501px) and (max-device-width:1200px)" href="css/kevux-screen-normal.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (min-device-width:251px) and (max-device-width:500px)" href="css/kevux-screen-small.css">
+ <link type="text/css" rel="stylesheet" media="only screen and (max-device-width:250px)" href="css/kevux-screen-tiny.css">
+ <link type="text/css" rel="stylesheet" media="only print" href="css/kevux-print.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:landscape)" href="css/kevux-print-landscape.css">
+ <link type="text/css" rel="stylesheet" media="only print and (orientation:portrait)" href="css/kevux-print-portrait.css">
+
+ <link rel="canonical" href="documentation.html">
+ <link type="image/x-icon" rel="icon" href="images/kevux.ico">
+ <link type="image/x-icon" rel="shortcut" href="images/kevux.ico">
+ <link type="text/html" rel="license" href="licenses.html">
+ <link type="text/html" rel="prev" href="projects.html">
+ </head>
+
+ <body id="kevux" class="kevux no-jSS Extended List Writes documentation">
+ <div role="banner" class="header-block">
+ <header class="header-section header">
+ <div class="header-site">Kevux Systems and Software</div>
+ </header>
+
+ <div class="nav-block">
+ <nav id="kevux-site-nav" class="nav-menu">
+ <div class="nav-item"><a href="news.html" class="nav-text link">News</a></div>
+ <div class="nav-item"><a href="distributions.html" class="nav-text link">Distributions</a></div>
+ <div class="nav-item"><a href="fll.html" class="nav-text link">FLL</a></div>
+ <div class="nav-item"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item active"><a href="documentation.html" class="nav-text link">Documentation</a></div>
+ </nav>
+ </div>
+ </div>
+
+ <div class="content-block">
+ <div id="nav-expanded" class="nav-block">
+ <nav id="kevux-document-nav" class="nav-menu">
+ <div class="nav-item block">
+ <div class="nav-text notice">Projects</div>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/byte_dump.html" class="nav-text link">Byte Dump</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/control.html" class="nav-text link">Control</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/controller.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fake.html" class="nav-text link">Featureless Make</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/firewall.html" class="nav-text link">Firewall</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_identify.html" class="nav-text link">FSS Identify</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_read.html" class="nav-text link">FSS Basic Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_write.html" class="nav-text link">FSS Basic Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_read.html" class="nav-text link">FSS Basic List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_basic_list_write.html" class="nav-text link">FSS Basic List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_read.html" class="nav-text link">FSS Embedded List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_embedded_list_write.html" class="nav-text link">FSS Embedded List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_read.html" class="nav-text link">FSS Extended Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_write.html" class="nav-text link">FSS Extended Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_read.html" class="nav-text link">FSS Extended List Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_extended_list_write.html" class="nav-text link">FSS Extended List Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_read.html" class="nav-text link">FSS Payload Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_payload_write.html" class="nav-text link">FSS Payload Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/fss_status_code.html" class="nav-text link">FSS Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/status_code.html" class="nav-text link">Status Code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_read.html" class="nav-text link">IKI Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/iki_write.html" class="nav-text link">IKI Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="documentation/utf8.html" class="nav-text link">UTF8</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ </div>
+ <div class="nav-item block">
+ <a href="specification/fss.html" class="nav-text link">Featureless Settings Specifications</a>
+ </div>
+ <div class="nav-item block">
+ <a href="specification/fss/0000-basic.html" class="nav-text link">FSS-0000: Basic</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="documentation.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="documentation.html" class="nav-text link close">Collapse Menu</a>
+ </div>
+ </nav>
+ </div>
+
+ <div role="document" class="main-block">
+ <main class="main">
+ <header class="section-header header">
+ <h1 class="section-title h h1">Documentation</h1>
+ </header>
+
+ <article class="article">
+ <header class="article-header header">
+ <h2 class="article-title h h2">Projects</h2>
+ </header>
+
+ <div class="article-content">
+ <p class="p">
+ Documentation for the following projects are provided within their own sub-pages.
+ </p>
+ <div class="grid wide expand columns-4">
+ <div class="grid-item"><a href="documentation/byte_dump.html" class="link">Byte Dump</a></div>
+ <div class="grid-item"><a href="documentation/control.html" class="link">Control</a></div>
+ <div class="grid-item"><a href="documentation/controller.html" class="link">Controller</a></div>
+ <div class="grid-item"><a href="documentation/fake.html" class="link">Featureless Make</a></div>
+ <div class="grid-item"><a href="documentation/firewall.html" class="link">Firewall</a></div>
+ <div class="grid-item"><a href="documentation/fss_identify.html" class="link">FSS Identify</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_read.html" class="link">FSS Basic Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_write.html" class="link">FSS Basic Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_list_read.html" class="link">FSS Basic List Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_basic_list_write.html" class="link">FSS Basic List Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_embedded_list_read.html" class="link">FSS Embedded List Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_embedded_list_write.html" class="link">FSS Embedded List Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_read.html" class="link">FSS Extended Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_write.html" class="link">FSS Extended Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_list_read.html" class="link">FSS Extended List Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_extended_list_write.html" class="link">FSS Extended List Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_payload_read.html" class="link">FSS Payload Read</a></div>
+ <div class="grid-item"><a href="documentation/fss_payload_write.html" class="link">FSS Payload Write</a></div>
+ <div class="grid-item"><a href="documentation/fss_status_code.html" class="link">FSS Status Code</a></div>
+ <div class="grid-item"><a href="documentation/status_code.html" class="link">Status Code</a></div>
+ <div class="grid-item"><a href="documentation/iki_read.html" class="link">IKI Read</a></div>
+ <div class="grid-item"><a href="documentation/iki_write.html" class="link">IKI Write</a></div>
+ <div class="grid-item"><a href="documentation/utf8.html" class="link">UTF8</a></div>
+ </div>
+ <ul>
+ </ul>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Specifications</h2>
+ </header>
+
+ <div class="article-content">
+ <p class="p">
+ Projects like the Featureless Linux Library are focused entirely around provided standards for every aspect of the project. Numerous specifications are available describing these standards. At this time, the specifications have not been transcribed into a format for the web. They are stored in plain text within the source code repositories.
+ </p>
+ <p class="p">
+ Many of these specifications may be found here:
+ </p>
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/control/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/control/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/controller/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/controller/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/specifications/</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/utf8/specifications/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/utf8/specifications/</a></li>
+ </ul>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">APIs</h2>
+ </header>
+
+ <div class="article-content">
+ <p class="p">
+ The <abbr title="Application Programming Interface">API</abbr>s have not yet been generated and are not available in an easy to consume form outside of the source code itself.
+ </p>
+ <p class="p">
+ The <abbr title="Application Programming Interface">API</abbr> can be viewed by navigating the source code for the <abbr title="Featureless Linux Library">FLL</abbr> here:
+ </p>
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/</a></li>
+ </ul>
+ </div>
+ </article>
+
+ <article class="article">
+ <header class="article-header header separate">
+ <h2 class="article-title h h2">Terminology</h2>
+ </header>
+
+ <div class="article-content">
+ <p class="p">
+ One of the biggest problems with an <abbr title="Application Programming Interface">API</abbr> is the mis-use or misunderstanding of the meaning and purpose of one. The term itself is not the most accurate and is also not ideal. A more appropriate term would be a <strong>Library Interface</strong> or a <strong>Software Interface</strong>.
+ </p>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Standard</h3>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ A set of rules and guidelines.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Specification</h3>
+ </header>
+ <div class="section-content">
+ <p class="p">
+ A specific interpretation, clarification, or description of a Standard, such as the documentation that describes how to use or follow a Standard.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Implementation</h3>
+ </header>
+ <div class="section-content">
+ <p class="p">
+ The applying of some Standard or Specification.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Application Programming Interface (API)</h3>
+ </header>
+ <div class="section-content">
+ <p class="p">
+ The <abbr title="Application Programming Interface">API</abbr> term is commonly mis-represented as Services or Protocols (such as "Web API"). An <abbr title="Application Programming Interface">API</abbr> instructs a programmer how to use a dependency when programming some software that utilizes said dependency. An <abbr title="Application Programming Interface">API</abbr> is a Specification of some Implementation of a Standard be it a formally defined standard or an informally defined standard. An <abbr title="Application Programming Interface">API</abbr> may be an Implementation of a Standard or a part of an Implementation of a Standard. An <abbr title="Application Programming Interface">API</abbr> is, in effect, documentation.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Application Binary Interface (ABI)</h3>
+ </header>
+ <div class="section-content">
+ <p class="p">
+ The <abbr title="Application Binary Interface">ABI</abbr> term refers to an Application Binary Interface and represents the compiled implementation of some <abbr title="Application Programming Interface">API</abbr>. An <abbr title="Application Binary Interface">ABI</abbr> may not always exist for some <abbr title="Application Programming Interface">API</abbr>, such as for pure scripting languages. An <abbr title="Application Binary Interface">ABI</abbr> is neither a Specification nor a Standard. An <abbr title="Application Binary Interface">ABI</abbr> is an Implementation of an <abbr title="Application Programming Interface">API</abbr> making it an Implementation of a Standard or Specification.
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Service</h3>
+ </header>
+ <div class="section-content">
+ <p class="p">
+ Any action or labor performed by one party for another party (such as one person helping another person).
+ </p>
+ </div>
+ </section>
+
+ <section class="section">
+ <header class="article-header header">
+ <h3 class="section-title h h3">Protocol</h3>
+ </header>
+ <div class="section-content">
+ <p class="p">
+ In the context of computers and software, this is a Standard focused on communication between two parties (often referring to Internet communication).
+ </p>
+ </div>
+ </section>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>