This release is made on 2026 / 01 / 01 at UTC.
box-sizing: border-box;
text-align: center;
+ word-break: break-word;
}
.kevux > .content-block > .nav-block > .nav-menu > .nav-item > .nav-text {
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) {
+.kevux.projects > .content-block > .main-block .table.design-1 > .set.body > .row {
+ border-top: 1px dotted;
+}
+
+.kevux.projects > .content-block > .main-block .table.design-1 > .set.body > .row > .column {
+ padding-top: 5px;
+
+ vertical-align: top;
+}
+
+.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even),
+.kevux.program > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even),
+.kevux.projects > .content-block > .main-block .table.context-parameters > .set > .row:nth-child(even),
+.kevux.specification > .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) {
+.kevux.documentation > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1),
+.kevux.program > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1),
+.kevux.projects > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1),
+.kevux.specification > .content-block > .main-block .table.context-parameters > .set > .row > .column:nth-child(1) {
text-align: center;
}
<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="description" content="Documentation of numerous Kevux Systems programs and software.">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, 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">
<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>
+ <a href="documentation.html#specifications" class="nav-text link">Specifications</a>
</div>
<div class="nav-item block">
- <a href="documentation/byte_dump.html" class="nav-text link">Byte Dump</a>
+ <a href="documentation.html#apis" class="nav-text link">APIs</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/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/kevux_firewall.html" class="nav-text link">Kevux Firewall</a>
- </div>
- <div class="nav-item block">
- <a href="documentation/utf8.html" class="nav-text link">UTF8</a>
+ <a href="documentation.html#terminology" class="nav-text link">Terminoligy</a>
</div>
<div class="nav-item block ellipses">
<a href="documentation.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
<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">
+ <section id="programs" class="section">
+ <div>
<p class="p">
- Documentation for the following projects are provided within their own sub-pages.
+ The documentaton for the various programs may be found within their individual <a href="projects.html" class="link">projects</a>.
</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/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/kevux_firewall.html" class="link">Kevux Firewall</a></div>
- <div class="grid-item"><a href="documentation/utf8.html" class="link">UTF8</a></div>
- </div>
- <ul>
- </ul>
</div>
- </article>
+ </section>
- <article class="article">
+ <article id="specifications" 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. <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.
+ 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.
+ The most up to date specifications might not been transcribed into a format for the web.
+ The most recent versions 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. The <strong class="strong">Featureless Make</strong> is <a href="documentation/fake/specifications.html" class="link">a good example of program specific specifications</a>.
+ There are three major groups of specifications, the <a href="fll/specifications.html#fss" class="link">Featureless Settings Specifications</a>, the <a href="fll/specifications.html#eki" class="link">EKI Specifications</a>, and the <a href="fll/specifications.html#iki" class="link">IKI Specifications</a>.
+ Individual projects might also have their own specifications.
+ Each program has a specifications page that describes the relevant specifications, if any, that are defined by that program's project.
+ The <strong class="strong">Featureless Make</strong> is <a href="documentation/fake/specifications.html" class="link">a good example of program specific specifications</a>.
</p>
<p class="p">
- Many of these specifications may also be found in the source code repositories:
+ Many of these specifications might 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>
</div>
</article>
- <article class="article">
+ <article id="apis" class="article">
<header class="article-header header separate">
<h2 class="article-title h h2">APIs</h2>
</header>
</div>
</article>
- <article class="article">
+ <article id="terminology" 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 class="strong">Library Interface</strong> or a <strong class="strong">Software Interface</strong>.
+ One of the biggest problems with an <abbr title="Application Programming Interface">API</abbr> is the misuse 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 class="strong">Library Interface</strong> or a <strong class="strong">Software Interface</strong>.
</p>
<section class="section">
</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.
+ 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>
</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.
+ 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>
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0-or-later
+# version 2024/07/02
+#
+
+Packet Request:
+ The Control program sends packets and receives packet responses from the Controller program over the Controller program's Control socket.
+ This documentation describes the request packets sent by this program.
+
+ The purpose of these request packets are to ask the Controller program to perform a requested action.
+
+ The communications to/from the Controller program utilize the FSS-000F (Simple Packet).
+ This Simple Packet is expected to contain within it the FSS-000E (Payload) format.
+
+ 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 "Payload Packet" refers to the FSS-000E (Payload) used within the FSS-000F (Simple Packet).
+ The "Payload Header" refers to either the Object ("header:") or Content within the Payload Packet representing the header.
+ The "Payload Object" refers to the Object within the Payload Packet (ie: "payload:").
+ The "Payload Content" refers to the Content within the Payload Packet.
+
+ The FSS-000E (Payload Packet) is very flexible in what it allows within the Header of the Payload Packet.
+ The Control program is more restrictive and supports only a subset of the possibilities (which this is explicitly allowed by the Specification).
+
+ The Control program only supports the following Payload Packet header Objects for the request\:
+ - type: Allows only a single type header Object and may only be one of: "controller", "error", or "init".
+ - length: Allows only a single length header Object and must properly describe the length of the entire Payload Packet as per the referenced Specifications.
+ - action: Allows only a single action header Object and whose first Content must only be one of: "freeze", "kexec", "kill", "pause", "reboot", "reload", "rerun", "restart", "resume", "shutdown", "start", "stop", and "thaw".
+
+ The number of Content associated with a action are specific to the requirements of that action.
+
+ The Payload Content is not used and should always be of length 0.
+
+ The Payload Content represents the rule being started in FSS-0001 (Extended) format, such as "service sshd".
+
+ For example, given the command: "control start service sshd in 5 minutes".
+ The "action" Object would be "start service sshd in 5 minutes".
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0-or-later
+# version 2024/07/02
+#
+
+Packet Response:
+ The control program sends packets and receives packet responses from the controller program over the controller program's control socket.
+ This documentation describes the expected response packets and how these response packets are handled.
+
+ The communications to/from the controller program utilize the FSS-000F (Simple Packet).
+ This Simple Packet is expected to contain within it the FSS-000E (Payload) format.
+
+ 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 "Payload Header" refers to either the Object ("header:") or Content within the Payload Packet representing the header.
+ The "Payload Object" refers to the Object within the Payload Packet (ie: "payload:").
+ The "Payload Content" refers to the Content within the Payload Packet.
+
+ The Payload Packet (FSS-000E) is very flexible in what it allows within the Header of the Payload Packet.
+ The Control program is more restrictive and supports only a subset of the possibilities (which this is explicitly allowed by the Specification).
+
+ The Control program only supports the following Payload Packet header Objects for the response\:
+ - status: Allows only a single status header Object.
+ - type: Allows only a single type header Object and may only be one of: "controller", "error", or "init".
+ - action: Allows only a single action header Object and must only be one of: "freeze", "kexec", "kill", "pause", "reboot", "reload", "rerun", "restart", "resume", "shutdown", "start", "stop", and "thaw".
+ - length: Allows only a single length header Object and must properly describe the length of the entire Payload Packet as per the referenced Specifications.
+
+ The "error" 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.
+
+ The "controller" type response Payload Packet represents a response regarding the result of performing a requested action.
+ There must always be an "action" designating the action this response is in regards to.
+ Only the following are (currently) supported as a status\:
+ - F_busy: When unable to perform the action as because the service is too busy or the
+ - F_done: When successfully performed the action but the action does not return success or failure.
+ - F_failure: When successfully performed the action and the action returned some sort of failure or error.
+ - F_success: When successfully performed the action and the action returned some sort of success.
+
+ When using the -R/--return parameter, the program prints specially formatted messages to help make the output more scriptable.
+
+ The form is "response [type] [action] [status]".
+ Examples\:
+ - A response that designates the action failed might look like: "response controller my_action F_failure".
+ - A response that designates the controller ran out of memory, preventing the action from being run: "response error my_action F_memory_not".
+ - A response that designates the controller ran successfully: "response controller my_action F_success".
+
+ When the control program fails to function due to some error, there will be no specially formatted message printed.
+ When the controller program fails before it can perform the requested action, then a "response error [action] [status]" formatted message is printed.
+ When the controller program successfully performs the action but the result of that action is an error, then a "response controller [action] F_failure" formatted message is printed.
--- /dev/null
+# fss-0002 iki-0000
+#
+# license: cc-by-sa-4.0
+# version 2024/07/10
+#
+# This file (assumed to be named readme.build.txt) can be more easily read using the following iki_read commands:
+# iki_read readme.build.txt +Q -w -rr FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
+#
+# To read the "Build Readme Documentation" section of this file, use this command sequence:
+# fss_basic_list_read readme.build.txt +Q -cn "Build Readme Documentation" | iki_read +Q -w -rr FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
+#
+
+Build Readme Documentation:
+ The bold:"Featureless Make", or code:"fake", is a build system opposing the bold:"GNU Make" build (and install) system.
+ See the code:"fake" project for further details regarding that build system.
+
+ Use the code:"make" operation from the code:"fake" program to build this project\:
+ code:"fake"
+
+ If the project has already been built before, alternative consider performing both a code:"clean" and an explicit code:"make" operation\:
+ code:"fake clean make"
+
+ After building, either run the helper file:"install.sh" script or manually install the build files.
+
+ Install Example\:
+ code:"./install.sh"
+
+ Manual Install Example\:
+ code:"cp -vR build/documentation/* /usr/share/"
+ code:"cp -vR build/includes/* /usr/include/"
+ code:"cp -vR build/libaries/shared/* /usr/lib/"
+ code:"cp -vR build/programs/shared/* /usr/bin/"
+ code:"cp -vR build/settings/* /etc/"
+
+ Build Tree Structure Example (using an early code:"controller-0.7.4" project structure)\:
+ block:"
+ build/
+ ├── documentation
+ │ └── man
+ │ ├── man1
+ │ │ └── controller.1
+ │ └── man5
+ │ ├── controller-actions.5
+ │ ├── controller-entry.5
+ │ ├── controller-exit.5
+ │ ├── controller-packet.5
+ │ └── controller-rule.5
+ ├── documents
+ ├── includes
+ │ └── program
+ │ └── controller
+ │ ├── controller
+ │ │ ├── controller.h
+ │ │ └── string.h
+ │ ├── init
+ │ │ ├── init.h
+ │ │ └── string.h
+ │ └── main
+ │ ├── common
+ │ │ ├── define
+ │ │ │ ├── control.h
+ │ │ │ ├── entry.h
+ │ │ │ ├── rule.h
+ │ │ │ └── thread.h
+ │ │ ├── define.h
+ │ │ ├── enumeration
+ │ │ │ ├── control.h
+ │ │ │ ├── entry.h
+ │ │ │ ├── instance.h
+ │ │ │ ├── process.h
+ │ │ │ ├── rule.h
+ │ │ │ └── thread.h
+ │ │ ├── enumeration.h
+ │ │ ├── print.h
+ │ │ ├── string
+ │ │ │ ├── general.h
+ │ │ │ └── rule.h
+ │ │ ├── string.h
+ │ │ ├── type
+ │ │ │ ├── cache.h
+ │ │ │ ├── control.h
+ │ │ │ ├── defs.h
+ │ │ │ ├── entry.h
+ │ │ │ ├── execute.h
+ │ │ │ ├── instance.h
+ │ │ │ ├── interrupt.h
+ │ │ │ ├── lock.h
+ │ │ │ ├── process.h
+ │ │ │ ├── rule.h
+ │ │ │ └── thread.h
+ │ │ └── type.h
+ │ ├── common.h
+ │ ├── controller.h
+ │ ├── convert.h
+ │ ├── entry
+ │ │ ├── action.h
+ │ │ ├── preprocess.h
+ │ │ ├── process.h
+ │ │ └── setting.h
+ │ ├── entry.h
+ │ ├── file.h
+ │ ├── instance
+ │ │ ├── prepare.h
+ │ │ └── wait.h
+ │ ├── instance.h
+ │ ├── lock.h
+ │ ├── path.h
+ │ ├── perform.h
+ │ ├── print
+ │ │ ├── data.h
+ │ │ ├── debug
+ │ │ │ ├── perform
+ │ │ │ │ ├── control.h
+ │ │ │ │ └── pid.h
+ │ │ │ └── rule
+ │ │ │ ├── action.h
+ │ │ │ └── execute.h
+ │ │ ├── debug.h
+ │ │ ├── error
+ │ │ │ ├── entry
+ │ │ │ │ ├── action.h
+ │ │ │ │ ├── item.h
+ │ │ │ │ └── setting.h
+ │ │ │ ├── entry.h
+ │ │ │ ├── lock.h
+ │ │ │ ├── perform
+ │ │ │ │ └── pid.h
+ │ │ │ ├── rule
+ │ │ │ │ ├── action.h
+ │ │ │ │ ├── item.h
+ │ │ │ │ └── setting.h
+ │ │ │ └── rule.h
+ │ │ ├── error.h
+ │ │ ├── lock.h
+ │ │ ├── message
+ │ │ │ ├── entry
+ │ │ │ │ ├── action.h
+ │ │ │ │ └── item.h
+ │ │ │ └── entry.h
+ │ │ ├── message.h
+ │ │ ├── output
+ │ │ │ ├── entry
+ │ │ │ │ └── setting.h
+ │ │ │ └── rule
+ │ │ │ ├── execute.h
+ │ │ │ ├── setting.h
+ │ │ │ └── validate.h
+ │ │ ├── verbose.h
+ │ │ ├── warning
+ │ │ │ ├── entry
+ │ │ │ │ ├── action.h
+ │ │ │ │ ├── item.h
+ │ │ │ │ └── setting.h
+ │ │ │ └── rule
+ │ │ │ ├── action.h
+ │ │ │ ├── item.h
+ │ │ │ └── setting.h
+ │ │ └── warning.h
+ │ ├── process.h
+ │ ├── rule
+ │ │ ├── action.h
+ │ │ ├── execute.h
+ │ │ ├── expand.h
+ │ │ ├── instance.h
+ │ │ ├── is.h
+ │ │ ├── item.h
+ │ │ ├── parameter.h
+ │ │ ├── read.h
+ │ │ ├── setting.h
+ │ │ └── wait.h
+ │ ├── rule.h
+ │ ├── signal.h
+ │ ├── status.h
+ │ ├── thread
+ │ │ ├── cleanup.h
+ │ │ ├── control.h
+ │ │ ├── entry.h
+ │ │ ├── instance.h
+ │ │ ├── is.h
+ │ │ ├── rule.h
+ │ │ └── signal.h
+ │ ├── thread.h
+ │ ├── time.h
+ │ └── validate.h
+ ├── libraries
+ │ ├── script
+ │ ├── shared
+ │ │ ├── libcontroller.so -> libcontroller.so.0
+ │ │ ├── libcontroller.so.0 -> libcontroller.so.0.7
+ │ │ ├── libcontroller.so.0.7 -> libcontroller.so.0.7.4
+ │ │ └── libcontroller.so.0.7.4
+ │ └── static
+ ├── objects
+ │ ├── script
+ │ ├── shared
+ │ └── static
+ ├── programs
+ │ ├── script
+ │ ├── shared
+ │ │ ├── controller
+ │ │ └── init
+ │ └── static
+ ├── settings
+ │ └── controller
+ │ ├── entries
+ │ │ ├── default.entry
+ │ │ └── maintenance.entry
+ │ ├── example
+ │ │ ├── cgroup_example
+ │ │ │ ├── entries
+ │ │ │ │ ├── chromium.entry
+ │ │ │ │ ├── eclipse.entry
+ │ │ │ │ ├── firefox.entry
+ │ │ │ │ └── setup_cgroups.entry
+ │ │ │ └── rules
+ │ │ │ ├── program
+ │ │ │ │ ├── chromium.rule
+ │ │ │ │ ├── eclipse.rule
+ │ │ │ │ └── firefox.rule
+ │ │ │ └── setup
+ │ │ │ └── cgroups.rule
+ │ │ ├── entries
+ │ │ │ ├── asynchronous.entry
+ │ │ │ ├── asynchronous-serial.entry
+ │ │ │ ├── delay-program.entry
+ │ │ │ ├── delay-service.entry
+ │ │ │ ├── environment.entry
+ │ │ │ ├── htop-alternate.entry
+ │ │ │ ├── htop-command.entry
+ │ │ │ ├── htop.entry
+ │ │ │ ├── iki.entry
+ │ │ │ ├── serial-alternate.entry
+ │ │ │ ├── serial.entry
+ │ │ │ ├── sshd.entry
+ │ │ │ ├── test.entry
+ │ │ │ ├── up.entry
+ │ │ │ └── utility.entry
+ │ │ ├── exits
+ │ │ │ ├── htop-alternate.exit
+ │ │ │ ├── serial.exit
+ │ │ │ └── sshd.exit
+ │ │ └── rules
+ │ │ ├── asynchronous
+ │ │ │ ├── sleep_10.rule
+ │ │ │ ├── sleep_1.rule
+ │ │ │ ├── sleep_2.rule
+ │ │ │ ├── sleep_3.rule
+ │ │ │ ├── sleep_5.rule
+ │ │ │ └── sleep_8.rule
+ │ │ ├── command
+ │ │ │ ├── htop.rule
+ │ │ │ └── multiple.rule
+ │ │ ├── delay
+ │ │ │ ├── long.rule
+ │ │ │ └── short.rule
+ │ │ ├── environment
+ │ │ │ ├── default.rule
+ │ │ │ ├── empty.rule
+ │ │ │ ├── exported.rule
+ │ │ │ ├── exporting.rule
+ │ │ │ ├── fake-nothing.rule
+ │ │ │ └── fake-something.rule
+ │ │ ├── maintenance
+ │ │ │ └── boom.rule
+ │ │ ├── print
+ │ │ │ └── newline.rule
+ │ │ ├── script
+ │ │ │ ├── create_socket_path.rule
+ │ │ │ ├── fail.rule
+ │ │ │ ├── iki.rule
+ │ │ │ ├── php.rule
+ │ │ │ ├── python.rule
+ │ │ │ ├── require_me.rule
+ │ │ │ └── succeed.rule
+ │ │ ├── serial
+ │ │ │ ├── s_1.rule
+ │ │ │ ├── s_2.rule
+ │ │ │ ├── s_3.rule
+ │ │ │ ├── s_4.rule
+ │ │ │ ├── s_5.rule
+ │ │ │ └── s_6.rule
+ │ │ ├── service
+ │ │ │ └── sshd.rule
+ │ │ └── utility
+ │ │ ├── sleeper_1.rule
+ │ │ ├── sleeper_2.rule
+ │ │ └── sleeper_3.rule
+ │ └── rules
+ │ ├── boot
+ │ │ ├── devices.rule
+ │ │ ├── file_system.rule
+ │ │ ├── modules.rule
+ │ │ ├── proc.rule
+ │ │ └── root.rule
+ │ ├── maintenance
+ │ │ └── console.rule
+ │ ├── net
+ │ │ ├── all.rule
+ │ │ └── loopback.rule
+ │ ├── service
+ │ │ ├── dbus.rule
+ │ │ ├── logger.rule
+ │ │ └── mouse.rule
+ │ ├── task
+ │ │ ├── clock.rule
+ │ │ ├── keyboard.rule
+ │ │ └── ntpdate.rule
+ │ └── terminal
+ │ ├── four.rule
+ │ ├── one.rule
+ │ ├── three.rule
+ │ └── two.rule
+ └── stage
+ ├── library_shared-settings.built
+ ├── program_shared-settings.controller.built
+ ├── program_shared-settings.init.built
+ ├── skeleton-settings.built
+ ├── skeleton-settings.controller.built
+ ├── skeleton-settings.init.built
+ ├── sources_documentation-settings.built
+ ├── sources_documentation-settings.controller.built
+ ├── sources_documentation-settings.init.built
+ ├── sources_headers-settings.built
+ ├── sources_headers-settings.controller.built
+ ├── sources_headers-settings.init.built
+ ├── sources_script-settings.built
+ ├── sources_script-settings.controller.built
+ ├── sources_script-settings.init.built
+ ├── sources_settings-settings.built
+ ├── sources_settings-settings.controller.built
+ └── sources_settings-settings.init.built
+ "
+
+ See: FLL:"Featureless Linux Library" code:"fake" project documents and specifications for further details on how to use the bold:"Featureless Make" system.
+ See: FLL:"Featureless Linux Library" project documentation and specifications for how to configure the bold:"Featureless Make" FSS:"Featureless Settings Specification" files.
--- /dev/null
+# fss-0002 iki-0000
+#
+# license: cc-by-sa-4.0
+# version 2024/07/10
+#
+# This file (assumed to be named readme.build.txt) can be more easily read using the following iki_read commands:
+# iki_read readme.txt +Q -w -r FLL FLL
+#
+# To read the "Readme Documentation" section of this file, use this command sequence:
+# fss_basic_list_read readme.txt +Q -cn "Readme Documentation" | iki_read +Q -w -r FLL FLL
+#
+
+Readme Documentation:
+ The Control program utilizes the FLL:"Featureless Linux Library" and is designed to be used for bold:"Linux" systems.
+
+ This project follows many of the FLL:"Featureless Linux Library" project practices and the documentation provided by that project should be consulted for further details in this regard.
+
+ The purpose of this project is to provide a tool to communicate with the Controller program.
+ This can also interact with the bold:"init" program that is an alternative build variation of the Controller program.
+
+ This project follows bold:"Specification Driven Development" and details of the configuration files are defined in the directory:"specifications/" and in the directory:"documents/".
+
+ To facilitate building of this project, these build systems are provided\:
+ - The bold:"Featureless Make", which is a level 3 project provided by FLL:"Featureless Linux Library".
+
+ See: file:"data/build/dependencies" for specific dependencies of this project.
+ See: file:"documents/readme.build.txt" for bold:"Featureless Make" compiling and notes on installing.
--- /dev/null
+# fss-0002
+#
+# license: open-standard-license-1.0-or-later
+# version 2024/07/02
+#
+
+Settings Documentation:
+ This describes intent and purposes of the control settings file.
+
+ 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 control program.
+
+ When this file is not specified any hardcoded defaults compiled into the program are used.
+
+ 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 "/etc/control/settings".
+
+ - name_socket\:
+ 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 ".suffix", should likely use "path_socket_suffix" to specify the file extension.
+
+ When not defined the compiled in default is used.
+ The default socket path directory is generally "default" but this could be changed during compile time.
+
+ This is required to not be empty so when the Object "path_socket" is defined without any Content, then an error is expected to be thrown.
+
+ This is used along with the "path_socket", "path_socket_prefix", and the "path_socket_suffix" to construct the socket file.
+
+ - path_socket\:
+ 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.
+
+ When not defined the compiled in default is used.
+ The default socket path directory is generally "/var/run/controller" but this could be changed during compile time.
+
+ When the Object "path_socket" is defined without any Content, then no path is added (resulting in the socket relative to the callers current working directory).
+
+ This is used along with the "path_socket_prefix", the "path_socket_suffix", and the "name_socket" to construct the socket file.
+ A full socket path might look something like "/var/run/controller/controller-default.socket".
+
+ It is common for the controller 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 "/var/run/init/init-default.socket".
+
+ - path_socket_prefix\:
+ This represents a prefix used to construct the full socket path.
+ This prefix is prepended to the socket file name.
+
+ When not defined the compiled in default is used.
+ The default path prefix is generally "controller-" but this could be changed during compile time.
+
+ When the Object "path_socket_prefix" is defined without any Content, then no prefix is prepended.
+
+ This is used along with the "path_socket", the "path_socket_suffix", and the "name_socket" to construct the socket file.
+
+ - path_socket_suffix\:
+ This represents a suffix used to construct the full socket path.
+ This suffix is appended to the socket file name.
+
+ When not defined the compiled in default is used.
+ The default path suffix is generally ".socket" but this could be changed during compile time.
+
+ When the Object "path_socket_suffix" is defined without any Content, then no suffix is appended.
+
+ This is used along with the "path_socket", the "path_socket_prefix", and the "name_socket" to construct the socket file.
--- /dev/null
+# fss-0002 iki-0000
+#
+# license cc-by-sa-4.0
+# version 2025/08/26
+#
+# This file (assumed to be named source_design.txt) can be more easily read using the following iki_read commands:
+# iki_read source_design.txt +Q -w -rrr API API FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
+#
+# To read the "Intent and Design of Source Code" section of this file, use this command sequence:
+# fss_basic_list_read source_design.txt +Q -cn "Intent and Design of Source Code" | iki_read +Q -w -rrr API API FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
+#
+
+Intent and Design of Source Code:
+ This project follows the bold:"Intent and Design of Source Code" of the FLL:"Featureless Linux Library".
+ The italic:"Intent and Design of Featureless Linux Library" section is a copy of the FLL:"Featureless Linux Library" intend and design text.
+
+Intent and Design of Featureless Linux Library:
+ The FLL:"Featureless Linux Library", and many of the related projects, follow specific designs on how the source code, the API:"Application Programming Interface", the ABI:"Application Binary Interface", and the numerous specifications are intended to be operated and used.
+
+ The biggest and most important of these is that this project is designed and intended to be used and optionally modified in an open-source and free manner.
+
+ There are several principles in which the FLL:"Featureless Linux Library" is designed around to help achieve this\:
+ 1. All software can be a library; the distinction between an executable program and a library is not real and is a falsehood.
+ 2. Proper use and understanding of terminology.
+ 3. All functions can be added, removed, and modified at will; the behavior and functions can be changed in any manner.
+ 4. Separation of a specification from its implementation.
+ 5. The ability to combine, merge, separate, mix, and unmix any of the source code into different forms.
+ 6. Leave the actual configuration setup to th users combining or distributing the software.
+ 7. The software should ideally be functional examples where anything being present itself can potentially be fully used.
+
+ The first principle is easily achieved in languages like C and C++.
+ Use the dynamic linker and link the programs, aka executables, as a library and make the actual program more or less a shim.
+ This does not mean programs cannot have additional changes and behavior.
+
+ The second principle can be solved by closely observing actual meanings of technological terms and through the avoidance of "buzz" terms.
+ The terminology that has been historically established in the computer software field has seen some erosion.
+ One such example is with the API:"Application Programming Interface", which has been misused to represent request messages, like with REST:"Representational State Transfer" which is a protocol and rather than an API:"Application Programming Interface".
+ The second principle strongly supports the first by recognizing what is really happening verses what is an artificial or conceptual distinction.
+ A program, or executable, is ultimately no different from a library.
+ The distinction between the two is ultimately conceptual.
+ There are many libraries that can be executed like a program and there are programs that can be linked to by a library.
+
+ The third principle is solved through how the source code is structured.
+ In the case of C code, nearly every aspect has an code:"ifdef" (or similar) wrapping that allows for customization.
+ The files themselves are broken up into context and purpose.
+ This should allow for the dynamic cherry-picking style enable or disabling certain functions.
+ Alternative versions of functions, that may or may not operate differently, can be enabled or disabled in a similar manner.
+ Major groups of changes can be performed by swapping in or out different source files.
+ The ability to completely omit massive amounts of functionality can be accomplished through various combinations therein.
+ There are even pre-built "disable" files to help facilitate mass changes.
+ There are also guides on generating and using stand alone builds.
+ Something similar will likely have to be followed as appropriate for languages other than C and C++.
+
+ The fourth principle is achieved first by following the second principle and then by establishing differences between what a library is and what a specification is.
+ A specification has its own license, independent of the license of the source code, and also helps facilitate the distinction between a library and the specification.
+ A library can follow the specification or can deviate from the specification, by design.
+ When this deviation occurs should be properly documented or communicated.
+ Following the specification, be it in full, in part, or even minimally, is all allowed but should be properly communicated.
+ Whether any aspect of a specification needs to or needs to not be followed is entirely situational and such decisions should be made by the individuals or entities building and distributing such software (be it in binary or in source form).
+ This is not to say that the license can be violated.
+ Be aware, however, that it is the code or the specification that can be changed, not the license itself.
+
+ The fifth principle is achieved through numerous means.
+ The Featureless Make and related specifications provide a means to tweak and customize how the library is built.
+ The separation of the installation logic from the build logic is a major player here.
+ The source code does not impose, for the most part, any sort of restrictions on how the software is to be installed once compiled.
+ This is left to the distributor or the end-user.
+ Linking dynamically or statically is entirely optional.
+ Linking in one big library or many smaller pieces is entirely optional.
+ Excluding or including individual snippets or functions is configurable, such as how the stand alone builds are designed.
+
+ The sixth principle is achieved by providing a standard build structure for compiling that does not particularly relate to the system setup.
+ Many of the designs from the fifth principle help make the sixth principle possible, such as the Featureless Make build system.
+ The build system setup is laid out based on how the files are built rather than how they might be installed.
+
+ The seventh principle is achieved in several different ways.
+ The example bootstrap scripts are themselves used to help build or initialize projects if the Featureless Make software is not yet present.
+ Stand alone builds are functional examples that present how one might construct a stand alone project.
+ These stand alone builds are themselves formally released as convenience releases for individuals only desiring one program and not any other parts of the FLL:"Featureless Linux Library",.
+ The stand alone builds also present ways to mass disable unneeded functionality from the FLL:"Featureless Linux Library" dependencies.
+ The Featureless Make itself provides build examples that can simultaneously be used as manual runtime tests.
+ The FSS Read, FSS Write, IKI Read, IKI Write programs provide functional examples on how to implement and use the FLL:"Featureless Linux Library" and follow the FSS:"Featureless Settings Specifications" while simultaneously providing a tool to process the associated specification.
--- /dev/null
+# fss-0002 iki-0000
+#
+# license: open-standard-license-1.0-or-later
+# version 2024/07/02
+#
+# This file (assumed to be named settings.txt) can be more easily read using the following iki_read commands:
+# iki_read settings.txt +Q -w -W code '"' '"'
+#
+# To read the "Entry Specification" section of this file, use this command sequence:
+# fss_basic_list_read settings.txt +Q -cn "Settings Specification" | iki_read +Q -w -W code '"' '"'
+#
+
+Settings Specification:
+ The control settings "settings" file follows the FSS-0001 (Extended) format.
+
+ Each Object represents a settings property name.
+ There is only a distinct set of setting property names (see below).
+
+ Each Content represents the values associated with that property.
+ Additional restrictions are applied to each Content depending on each specific Object name (see below).
+
+ Object Names and their respective Content purpose/restrictions\:
+ - name_socket: Must only be a single valid filename, without the directory.
+ - path_socket: Must only be a single valid directory.
+ - path_socket_prefix: Zero or one string representing a file name.
+ - path_socket_suffix: Zero or one string representing a file name.
--- /dev/null
+# fss-0002 iki-0000
+#
+# license: open-standard-license-1.0-or-later
+# version 2025/11/21
+#
+# This file (assumed to be named controlfile.txt) can be more easily read using the following iki_read commands:
+# iki_read controlfile.txt +Q -w -WW code '"' '"' file '"' '"'
+#
+# To read the "Control File Documentation" section of this file, use this command sequence:
+# fss_basic_list_read controlfile.txt +Q -cn "Control File Documentation" | iki_read +Q -w -WW code '"' '"' file '"' '"'
+#
+
+Control File Documentation:
+
+ A control file is intended to be used by controller programs similar to how the code:"fakefile" is used by the bold:"Featureless Make" program.
+
+ A control file consists of the file:"entry.txt", file:"exit.txt", and file:"rule.txt" all merged into a single file.
+ The goal of of a control file is to collapse the directory hierarchy structure into a single file.
+ This imposes no new Objects or other structures.
+
+ Any modifications, or deviations, from this standard that add additional things beyond the bold:"Entry", bold:"Exit", and bold:"Rule" are encouraged to follow the naming prefix pattern.
+ The naming pattern is the simple standard name, like code:"entry", code:"exit", or code:"rule" followed by a forward slash (unicode:"U+002F") as a prefix.
+ Then all Object names would then have that prefix.
+
+ For example, if there is an bold:"Entry" named code:"main", then the control file representation would be code:"entry/main".
+
+ A bold:"Rule", in addition, also has the directory path part appended (where only a forward slash (unicode:"U+002F") is allowed to represent a directory separation) followed by a forward slash (unicode:"U+002F") as part of the prefix.
+
+ For example, if there is an bold:"Rule" named code:"one" from a directory named code:"terminal" with a bold:"Script", then the control file representation would be code:"rule/terminal/one/script".
+
+ Due to the use of a forward slash (unicode:"U+002F"), bold:"Item" names for an bold:"Entry" or a bold:"Rule" should avoid using a forward slash (unicode:"U+002F").
# fss-0002 iki-0000
#
# license: open-standard-license-1.0-or-later
-# version 2024/07/10
+# version 2025/11/12
#
# This file (assumed to be named entry.txt) can be more easily read using the following iki_read commands:
-# iki_read entry.txt +Q -r PID PID -w -WW code '"' '"'
+# iki_read entry.txt +Q -r PID PID -w -W code '"' '"'
#
# To read the "Entry Documentation" section of this file, use this command sequence:
# fss_basic_list_read entry.txt +Q -cn "Entry Documentation" | iki_read +Q -r PID PID -w -W code '"' '"'
--- /dev/null
+# fss-0002 iki-0000
+#
+# license: open-standard-license-1.0-or-later
+# version 2025/11/17
+#
+# This file (assumed to be named initfile.txt) can be more easily read using the following iki_read commands:
+# iki_read initfile.txt +Q -w -W file '"' '"'
+#
+# To read the "Init File Documentation" section of this file, use this command sequence:
+# fss_basic_list_read initfile.txt +Q -cn "Init File Documentation" | iki_read +Q -w -W file '"' '"'
+#
+
+Init File Documentation:
+
+ An init file is the init program specific version of the file:"controlfile".
+ The init program should use an file:"initfile" instead of a file:"controlfile", if supported.
code:"cp -vR build/programs/shared/* /usr/bin/"
code:"cp -vR build/settings/* /etc/"
- Build Tree Structure Example (using an early code:"controller-0.7.0" project structure)\:
+ Build Tree Structure Example (using an early code:"controller-0.7.4" project structure)\:
block:"
build/
├── documentation
│ ├── shared
│ │ ├── libcontroller.so -> libcontroller.so.0
│ │ ├── libcontroller.so.0 -> libcontroller.so.0.7
- │ │ ├── libcontroller.so.0.7 -> libcontroller.so.0.7.0
- │ │ └── libcontroller.so.0.7.0
+ │ │ ├── libcontroller.so.0.7 -> libcontroller.so.0.7.4
+ │ │ └── libcontroller.so.0.7.4
│ └── static
├── objects
│ ├── script
--- /dev/null
+# fss-0002 iki-0000
+#
+# license cc-by-sa-4.0
+# version 2025/08/26
+#
+# This file (assumed to be named source_design.txt) can be more easily read using the following iki_read commands:
+# iki_read source_design.txt +Q -w -rrr API API FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
+#
+# To read the "Intent and Design of Source Code" section of this file, use this command sequence:
+# fss_basic_list_read source_design.txt +Q -cn "Intent and Design of Source Code" | iki_read +Q -w -rrr API API FLL FLL FSS FSS -WW character "'" "'" code '"' '"'
+#
+
+Intent and Design of Source Code:
+ This project follows the bold:"Intent and Design of Source Code" of the FLL:"Featureless Linux Library".
+ The italic:"Intent and Design of Featureless Linux Library" section is a copy of the FLL:"Featureless Linux Library" intend and design text.
+
+Intent and Design of Featureless Linux Library:
+ The FLL:"Featureless Linux Library", and many of the related projects, follow specific designs on how the source code, the API:"Application Programming Interface", the ABI:"Application Binary Interface", and the numerous specifications are intended to be operated and used.
+
+ The biggest and most important of these is that this project is designed and intended to be used and optionally modified in an open-source and free manner.
+
+ There are several principles in which the FLL:"Featureless Linux Library" is designed around to help achieve this\:
+ 1. All software can be a library; the distinction between an executable program and a library is not real and is a falsehood.
+ 2. Proper use and understanding of terminology.
+ 3. All functions can be added, removed, and modified at will; the behavior and functions can be changed in any manner.
+ 4. Separation of a specification from its implementation.
+ 5. The ability to combine, merge, separate, mix, and unmix any of the source code into different forms.
+ 6. Leave the actual configuration setup to th users combining or distributing the software.
+ 7. The software should ideally be functional examples where anything being present itself can potentially be fully used.
+
+ The first principle is easily achieved in languages like C and C++.
+ Use the dynamic linker and link the programs, aka executables, as a library and make the actual program more or less a shim.
+ This does not mean programs cannot have additional changes and behavior.
+
+ The second principle can be solved by closely observing actual meanings of technological terms and through the avoidance of "buzz" terms.
+ The terminology that has been historically established in the computer software field has seen some erosion.
+ One such example is with the API:"Application Programming Interface", which has been misused to represent request messages, like with REST:"Representational State Transfer" which is a protocol and rather than an API:"Application Programming Interface".
+ The second principle strongly supports the first by recognizing what is really happening verses what is an artificial or conceptual distinction.
+ A program, or executable, is ultimately no different from a library.
+ The distinction between the two is ultimately conceptual.
+ There are many libraries that can be executed like a program and there are programs that can be linked to by a library.
+
+ The third principle is solved through how the source code is structured.
+ In the case of C code, nearly every aspect has an code:"ifdef" (or similar) wrapping that allows for customization.
+ The files themselves are broken up into context and purpose.
+ This should allow for the dynamic cherry-picking style enable or disabling certain functions.
+ Alternative versions of functions, that may or may not operate differently, can be enabled or disabled in a similar manner.
+ Major groups of changes can be performed by swapping in or out different source files.
+ The ability to completely omit massive amounts of functionality can be accomplished through various combinations therein.
+ There are even pre-built "disable" files to help facilitate mass changes.
+ There are also guides on generating and using stand alone builds.
+ Something similar will likely have to be followed as appropriate for languages other than C and C++.
+
+ The fourth principle is achieved first by following the second principle and then by establishing differences between what a library is and what a specification is.
+ A specification has its own license, independent of the license of the source code, and also helps facilitate the distinction between a library and the specification.
+ A library can follow the specification or can deviate from the specification, by design.
+ When this deviation occurs should be properly documented or communicated.
+ Following the specification, be it in full, in part, or even minimally, is all allowed but should be properly communicated.
+ Whether any aspect of a specification needs to or needs to not be followed is entirely situational and such decisions should be made by the individuals or entities building and distributing such software (be it in binary or in source form).
+ This is not to say that the license can be violated.
+ Be aware, however, that it is the code or the specification that can be changed, not the license itself.
+
+ The fifth principle is achieved through numerous means.
+ The Featureless Make and related specifications provide a means to tweak and customize how the library is built.
+ The separation of the installation logic from the build logic is a major player here.
+ The source code does not impose, for the most part, any sort of restrictions on how the software is to be installed once compiled.
+ This is left to the distributor or the end-user.
+ Linking dynamically or statically is entirely optional.
+ Linking in one big library or many smaller pieces is entirely optional.
+ Excluding or including individual snippets or functions is configurable, such as how the stand alone builds are designed.
+
+ The sixth principle is achieved by providing a standard build structure for compiling that does not particularly relate to the system setup.
+ Many of the designs from the fifth principle help make the sixth principle possible, such as the Featureless Make build system.
+ The build system setup is laid out based on how the files are built rather than how they might be installed.
+
+ The seventh principle is achieved in several different ways.
+ The example bootstrap scripts are themselves used to help build or initialize projects if the Featureless Make software is not yet present.
+ Stand alone builds are functional examples that present how one might construct a stand alone project.
+ These stand alone builds are themselves formally released as convenience releases for individuals only desiring one program and not any other parts of the FLL:"Featureless Linux Library",.
+ The stand alone builds also present ways to mass disable unneeded functionality from the FLL:"Featureless Linux Library" dependencies.
+ The Featureless Make itself provides build examples that can simultaneously be used as manual runtime tests.
+ The FSS Read, FSS Write, IKI Read, IKI Write programs provide functional examples on how to implement and use the FLL:"Featureless Linux Library" and follow the FSS:"Featureless Settings Specifications" while simultaneously providing a tool to process the associated specification.
--- /dev/null
+# fss-0002 iki-0000
+#
+# license: open-standard-license-1.0-or-later
+# version 2025/11/21
+#
+# This file (assumed to be named controlfile.txt) can be more easily read using the following iki_read commands:
+# iki_read controlfile.txt +Q -w -WW code '"' '"' file '"' '"'
+#
+# To read the "Controlfile Specification" section of this file, use this command sequence:
+# fss_basic_list_read controlfile.txt +Q -cn "Controlfile Specification" | iki_read +Q -w -WW code '"' '"' file '"' '"'
+#
+
+Controlfile Specification:
+ A control file follows the code:"FSS-0005 (Somewhat Basic List)" and the code:"FSS-000D (Basic Rule)" format with bold:"IKI-0000 (Unrestricted)" format.
+
+ A control file name is expected to have the exact name of file:"controlfile".
+ The file:"controlfile" is all lower case and has no file extension.
+
+ A control file consists of the file:"entry.txt", file:"exit.txt", and file:"rule.txt" all merged into a single file.
+ All of the specifications apply, except for the name of the Objects.
+ The names of the Objects are as follows.
+
+ For file:"entry.txt":
+ - The code:"main" is now called code:"entry/main".
+ - The code:"settings" is now called code:"entry/settings".
+
+ For file:"exit.txt":
+ - The code:"main" is now called code:"exit/main".
+ - The code:"settings" is now called code:"exit/settings".
+
+ For file:"rule.txt" (whose bold:"Rule" with a name of code:"my_rule" is under the path code:"directory"):
+ - The code:"command" is now called code:"rule/directory/my_rule/command".
+ - The code:"script" is now called code:"rule/directory/my_rule/script".
+ - The code:"service" is now called code:"rule/directory/my_rule/service".
+ - The code:"settings" is now called code:"rule/directory/my_rule/settings".
+ - The code:"utility" is now called code:"rule/directory/my_rule/utility".
+
+ Any additional specifications brought in are be expected to follow the same pattern for combining.
--- /dev/null
+# fss-0002 iki-0000
+#
+# license: open-standard-license-1.0-or-later
+# version 2025/11/17
+#
+# This file (assumed to be named initfile.txt) can be more easily read using the following iki_read commands:
+# iki_read initfile.txt +Q -w -W file '"' '"'
+#
+# To read the "Init File Specification" section of this file, use this command sequence:
+# fss_basic_list_read initfile.txt +Q -cn "Init File Specification" | iki_read +Q -w -W file '"' '"'
+#
+
+Init File Specification:
+ An init file is identical to a control file in all but name.
+
+ An Initfile file name is expected to have the exact name of file:"initfile".
+ The file:"initfile" is all lower case and has no file extension.
# fss-0002 iki-0000
#
-# license: open-standard-license-1.0-or-later
+# license open-standard-license-1.0-or-later
# version 2024/07/30
#
# This file (assumed to be named fakefile.txt) can be more easily read using the following iki_read commands:
# fss-0002 iki-0000
#
-# license: open-standard-license-1.0-or-later
-# version 2024/07/30
+# license open-standard-license-1.0-or-later
+# version 2025/03/07
#
# This file (assumed to be named settings.txt) can be more easily read using the following iki_read commands:
# iki_read settings.txt +Q -w -rrr ASCII ASCII FLL FLL GCC GCC -WW character "'" "'" code '"' '"'
The programs code:"gcc" and code:"clang" are known to work.
Many of the parameters in the bold:"settings" file can be changed if not using GCC:"GNU Compiler Collection", but there may be certain hard-coded functionality that may need to be changed.
+ - code:"build_compiler_arguments"\:
+ This represents arguments passed directly to the code:"build_compiler".
+ These arguments are placed immediately after the code:"build_compiler" program.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_shared"\:
+ This represents arguments passed directly to the code:"build_compiler" for shared.
+ These arguments are placed immediately after the code:"build_compiler" program.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_static"\:
+ This represents arguments passed directly to the code:"build_compiler for static".
+ These arguments are placed immediately after the code:"build_compiler" program.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_library"\:
+ This represents arguments passed directly to the code:"build_compiler" when building libraries.
+ These arguments are placed immediately after the code:"build_compiler_arguments" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_library_shared"\:
+ This represents arguments passed directly to the code:"build_compiler" when building libraries that are shared.
+ These arguments are placed immediately after the code:"build_compiler_arguments_library" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_library_static"\:
+ This represents arguments passed directly to the code:"build_compiler" when building libraries that are static.
+ These arguments are placed immediately after the code:"build_compiler_arguments_library" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_object"\:
+ This represents arguments passed directly to the code:"build_compiler" when building objects.
+ These arguments are placed immediately after the code:"build_compiler_arguments" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive"
+
+ - code:"build_compiler_arguments_object_shared"\:
+ This represents arguments passed directly to the code:"build_compiler" when building objects that are shared.
+ These arguments are placed immediately after the code:"build_compiler_arguments_object" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive"
+
+ - code:"build_compiler_arguments_object_static"\:
+ This represents arguments passed directly to the code:"build_compiler" when building objects that are static.
+ These arguments are placed immediately after the code:"build_compiler_arguments_object" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive"
+
+ - code:"build_compiler_arguments_program"\:
+ This represents arguments passed directly to the code:"build_compiler" when building programs.
+ These arguments are placed immediately after the code:"build_compiler_arguments" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_program_shared"\:
+ This represents arguments passed directly to the code:"build_compiler" when building programs that are shared.
+ These arguments are placed immediately after the code:"build_compiler_arguments_program" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
+ - code:"build_compiler_arguments_program_static"\:
+ This represents arguments passed directly to the code:"build_compiler" when building programs that are static.
+ These arguments are placed immediately after the code:"build_compiler_arguments_program" parameters.
+ This is useful for some languages, such as code:"go" which might need to operate like code:"go build" or code:"go build -buildmode=archive".
+
- code:"build_indexer"\:
This represents the name of the indexer program to use, such as code:"ar".
An indexer is often called a linker.
- code:"build_language"\:
The programming language to build with.
- The languages code:"c" and code:"c++" are supported (with code:"bash" as a consideration for support).
- The code:"bash" language is not currently implemented and needs some consideration because there is nothing to compile.
- The code:"bash" language will likely build a set of individual scripts, and perhaps script dependencies, into a single Bash script.
+ The languages code:"c", code:"c++", code:"go", and code:"shell" are the commonly known and supported languages.
+ The code:"shell" language is for shell languages such as code:"bash" or code:"zsh" and might not need special handling because there is nothing to compile.
+ The code:"shell" language might be implemented to build a set of individual scripts, and perhaps script dependencies, into a single script.
+ Individual implementations may restrict this to a select number of languages such as the commonly known and supported languages mentioned.
+ Languages not in the commonly known and supported languages are generally treated as compiled languages but the user must take care to properly configure it.
+
+ - code:"build_language_path"\:
+ A path relative to the sources directory reprsenting the sources.
+ This defaults to a path based on the code:"build_language" when not defined.
- code:"build_libraries"\:
A collection of libraries to be linked against.
These are applied to only static builds.
- code:"build_objects_library"\:
- A collection of object files to be compile with when building libraries.
+ A collection of object files to be compile with when building objects for libraries.
These are intended to represent already compiled object files.
These paths are relative to the code:"path_object_script", code:"path_object_shared", or code:"path_object_static".
The order of these may matter if the compiler (such as GCC:"GNU Compiler Collection" or a linker via GCC:"GNU Compiler Collection") is order sensitive.
- code:"build_objects_library_shared"\:
- A collection of object files to be compile with when building shared libraries.
+ A collection of object files to be compile with when building objects for shared libraries.
These are intended to represent already compiled object files.
These paths are relative to the code:"path_object_shared".
The order of these may matter if the compiler (such as GCC:"GNU Compiler Collection" or a linker via GCC:"GNU Compiler Collection") is order sensitive.
These are applied to only shared builds.
- code:"build_objects_library_static"\:
- A collection of object files to be compile with when building static libraries.
+ A collection of object files to be compile with when building objects for static libraries.
These are intended to represent already compiled object files.
These paths are relative to the code:"path_object_static".
The order of these may matter if the compiler (such as GCC:"GNU Compiler Collection" or a linker via GCC:"GNU Compiler Collection") is order sensitive.
These are applied to only static builds.
- code:"build_objects_program"\:
- A collection of object files to be compile with when building programs.
+ A collection of object files to be compile with when building objects for programs.
These are intended to represent already compiled object files.
These paths are relative to the code:"path_object_script", code:"path_object_shared", or code:"path_object_static".
The order of these may matter if the compiler (such as GCC:"GNU Compiler Collection" or a linker via GCC:"GNU Compiler Collection") is order sensitive.
- code:"build_objects_program_shared"\:
- A collection of object files to be compile with when building shared programs.
+ A collection of object files to be compile with when building objects for shared programs.
These are intended to represent already compiled object files.
These paths are relative to the code:"path_object_shared".
The order of these may matter if the compiler (such as GCC:"GNU Compiler Collection" or a linker via GCC:"GNU Compiler Collection") is order sensitive.
These are applied to only shared builds.
- code:"build_objects_program_static"\:
- A collection of object files to be compile with when building static programs.
+ A collection of object files to be compile with when building objects for static programs.
These are intended to represent already compiled object files.
These paths are relative to the code:"path_object_static".
The order of these may matter if the compiler (such as GCC:"GNU Compiler Collection" or a linker via GCC:"GNU Compiler Collection") is order sensitive.
These are applied to only static builds.
- code:"build_name"\:
- The name of the build, which often represent the project name.
+ The name of the build, which often represents the project name.
If program sources are specified, then this will be used as the program name.
If library sources are specified, then this will be used in the library name, such as code:"libX.so" where code:"X" would be the code:"build_name" value.
+ If script sources are specified, then this will be used as the script name.
+ This is required even if one of the more specific types, such as code:"build_name_library_shared", is specified.
+
+ - code:"build_name_library"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the library name involving objects, such as code:"libX.so" where code:"X" would be the code:"build_name_library" value.
+
+ - code:"build_name_library_shared"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the library name for shared builds involving objects.
+ These are applied to only to shared builds.
+
+ - code:"build_name_library_static"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the library name for static builds involving objects.
+ These are applied to only to static builds.
+
+ - code:"build_name_object"\:
+ The name of the build, which often represents the project name.
+ If library sources are specified, then this is a variation of code:"build_name" used specifically for the program name involving objects.
+ If program sources are specified, then this is a variation of code:"build_name" used specifically for the library name involving objects.
+
+ - code:"build_name_object_library"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the library name involving objects, such as code:"libX.so" where code:"X" would be the code:"build_name_library" value.
+
+ - code:"build_name_object_library_shared"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the library name for shared builds involving objects.
+ These are applied to only to shared builds.
+
+ - code:"build_name_object_library_static"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the library name for static builds involving objects.
+ These are applied to only to static builds.
+
+ - code:"build_name_object_program"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name involving objects.
+
+ - code:"build_name_object_program_shared"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name for shared builds involving objects.
+ These are applied to only to shared builds.
+
+ - code:"build_name_object_program_static"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name for static builds involving objects.
+ These are applied to only to static builds.
+
+ - code:"build_name_object_shared"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name for shared builds involving objects.
+ These are applied to only to shared builds.
+
+ - code:"build_name_object_static"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name for static builds involving objects.
+ These are applied to only to static builds.
+
+ - code:"build_name_program"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name.
+
+ - code:"build_name_program_shared"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name for shared builds.
+ These are applied to only to shared builds.
+
+ - code:"build_name_program_static"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the program name for static builds.
+ These are applied to only to static builds.
+
+ - code:"build_name_script"\:
+ The name of the build, which often represents the project name.
+ This is a variation of code:"build_name" used specifically for the script name.
- code:"build_script"\:
When code:"yes", the build process will build any scripts, such as a Bash script.
The built objects do not get linked and therefore no linker arguments apply.
The built object files are named using the same name as the file with the file extension changed to the code:".o" extension.
May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c").
- This is different from code:"build_sources_object" in that multiple files are supported and multiple object files are created.
+ Multiple files are supported and multiple object files are created.
- code:"build_sources_object_shared"\:
A collection of source files used for generating an object file with the same name as each source file.
The built objects do not get linked and therefore no linker arguments apply.
The built object files are named using the same name as the file with the file extension changed to the code:".o" extension.
May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c").
- This is different from code:"build_sources_object" in that multiple files are supported and multiple object files are created.
+ Multiple files are supported and multiple object files are created.
These are applied to only shared builds.
- code:"build_sources_object_static"\:
The built objects do not get linked and therefore no linker arguments apply.
The built object files are named using the same name as the file with the file extension changed to the code:".o" extension.
May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c").
- This is different from code:"build_sources_object" in that multiple files are supported and multiple object files are created.
+ Multiple files are supported and multiple object files are created.
These are applied to only static builds.
- code:"build_sources_program"\:
# fss-0002 iki-0000
#
-# license: open-standard-license-1.0-or-later
+# license open-standard-license-1.0-or-later
# version 2024/03/23
#
# This file (assumed to be named defines.txt) can be more easily read using the following iki_read commands:
# fss-0002 iki-0000
#
-# license: open-standard-license-1.0-or-later
+# license open-standard-license-1.0-or-later
# version 2024/03/23
#
# This file (assumed to be named dependencies.txt) can be more easily read using the following iki_read commands:
# fss-0002 iki-0000
#
-# license: open-standard-license-1.0-or-later
+# license open-standard-license-1.0-or-later
# version 2024/07/30
#
# This file (assumed to be named fakefile.txt) can be more easily read using the following iki_read commands:
# fss-0002 iki-0000
#
-# license: open-standard-license-1.0-or-later
-# version 2024/07/30
+# license open-standard-license-1.0-or-later
+# version 2025/03/07
#
# This file (assumed to be named settings.txt) can be more easily read using the following iki_read commands:
# iki_read settings.txt +Q -w -WW character "'" "'" code '"' '"'
bold:"Object" names and their respective bold:"Content" purpose/restrictions\:
- code:"build_compiler": Only one bold:"Content", which must only be a valid filename.
+ - code:"build_compiler_arguments": Must be zero or more parameters.
+ - code:"build_compiler_arguments_shared": Must be zero or more parameters.
+ - code:"build_compiler_arguments_static": Must be zero or more parameters.
+ - code:"build_compiler_arguments_library": Must be zero or more parameters.
+ - code:"build_compiler_arguments_library_shared": Must be zero or more parameters.
+ - code:"build_compiler_arguments_library_static": Must be zero or more parameters.
+ - code:"build_compiler_arguments_object": Must be zero or more parameters.
+ - code:"build_compiler_arguments_object_shared": Must be zero or more parameters.
+ - code:"build_compiler_arguments_object_static": Must be zero or more parameters.
+ - code:"build_compiler_arguments_program": Must be zero or more parameters.
+ - code:"build_compiler_arguments_program_shared": Must be zero or more parameters.
+ - code:"build_compiler_arguments_program_static": Must be zero or more parameters.
- code:"build_indexer": Only one bold:"Content", which must only be a valid filename.
- code:"build_indexer_arguments": Zero or more arguments supported by the indexer specified in code:"build_indexer".
- - code:"build_language": Must only be one of: code:"bash", code:"c", or code:"c++".
+ - code:"build_language": May be any language but is generally only a known or supported language, such as: code:"c", code:"c++", or code:"go".
- code:"build_libraries": Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" bold:"Object".
- code:"build_libraries_shared": Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" bold:"Object".
- code:"build_libraries_static": Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" bold:"Object".
- - code:"build_name": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name": Must only contain characters allowed in a filename (no slashes allowed) (required).
+ - code:"build_name_library": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_library_shared": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_library_static": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_library": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_library_shared": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_library_static": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_program": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_program_shared": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_program_static": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_shared": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_object_static": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_program": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_program_shared": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_program_static": Must only contain characters allowed in a filename (no slashes allowed).
+ - code:"build_name_script": Must only contain characters allowed in a filename (no slashes allowed).
- code:"build_objects_library": Must only contain any number of valid object file names relative to the appropriate code:"path_object_*" path.
- code:"build_objects_library_shared": Must only contain any number of valid object file names relative to the code:"path_object_shared" path.
- code:"build_objects_library_static": Must only contain any number of valid object file names relative to the code:"path_object_static" path.
- code:"version_minor_prefix": Must be zero or more valid filename characters (no slashes allowed).
- code:"version_nano": Must only be a single value containing valid filename characters (no slashes allowed).
- code:"version_nano_prefix": Must be zero or more valid filename characters (no slashes allowed).
- - code:"version_target": Must only be one of: code:"major", code:"minor", code:"micro", or code:"nano".
+ - code:"version_target": Must only be one of: code:"major", code:"minor", code:"micro", or code:"nano" (no slashes allowed).
All bold:"Object" names support having a code:"-" and a code:"mode" name, such as code:"build_libraries-individual" for a mode called code:"individual", except for the code:"modes" and the code:"modes_default" bold:"Object" names.
# fss-0002 iki-0000
#
# license open-standard-license-1.0-or-later
-# version 2024/11/23
+# version 2025/03/22
#
# This file (assumed to be named time.txt) can be more easily read using the following iki_read commands:
# iki_read time.txt +Q -r UTC UTC -w -WW character "'" "'" code '"' '"'
code:`time:"12345"`.
code:`time:"2022:12345"`.
code:`epochtime:"12345"`.
- code:`epochtime:"2022:12345"`.
+ code:`epochtime:"2022::12345"`.
The bold:"EKI" could be used to designate the standard unit bold:"time" and bold:"epochtime" along with a more explicit base time like the following\:
code:`day:time:"12345"`.
code:`day:time:"100:12345"`.
code:`year:time:"2022:12345"`.
code:`day:epochtime:"12345"`.
- code:`day:epochtime:"100:12345"`.
- code:`year:epochtime:"2022:12345"`.
+ code:`day:epochtime:"100::12345"`.
+ code:`year:epochtime:"2022::12345"`.
In the previous examples for bold:"EKI" show code:"day" along with code:"epochtime".
For code:`day:epochtime:"100:12345"`, this means that the timestamp starts 100 days after the bold:"UNIX Epoch" year.
--- /dev/null
+# fss-0002
+#
+# license cc-by-sa-4.0
+# version 2024/07/02
+#
+
+About utf8 Documentation:
+ The utf8 program is intended to provide simple support for identifying UTF-8 character sequences with regard to its Unicode codepoint designation.
+ Unicode codepoints may also be converted into their binary UTF-8 character sequence equivalents.
+
+ Basic support for identifying and validating is provided.
+
+ This is not intended to be an advanced UTF-8 processing program.
+ While this is an open option for future development, it is beyond the scope, time, and knowledge of the author (Kevin Day).
+
+ There is basic support for identifying character widths and combining characters.
+
+Printing a Complete Binary String:
+ The +q/++quiet must be used to suppress message output (this does not suppress output of processed data).
+
+ The +n/++no_color must be used to suppress printing the color context that is used for invalid sequences.
+
+ The -B/--to_binary must be used to print the binary string.
+
+ The -F/--to_file may optionally be used (and is recommended to be used) to send the output to a file rather than to the screen.
+
+ The -s/--strip_invalid must not be used as the binary string may contain invalid data that must be preserved for proper binary equivalence.
+
+ The -S/--separate must not be used to ensure the data is not separated by multiple lines.
+
+ The -H/--headers must not be used to ensure the processing headers are not printed.
+
+ The -v/--verify must no be used as this suppressed data output.
+
+ The -C/--to_codepoint must not be used as this prints Unicode codepoints rather than the binary string.
--- /dev/null
+# fss-0002
+#
+# license cc-by-sa-4.0
+# version 2024/07/02
+#
+
+Output Documentation:
+ This program either outputs a binary string representing UTF-8 character sequences or a string representing Unicode codepoints.
+
+ When printing in binary string output, suppressing color, and suppressing any output messages, the output should only be an exact representation of the data.
+ Ideally, what this means is that the a binary program, such as /bin/bash can be used as input and this programs binary string output (with appropriate additional parameters) should be capable of printing output that is identical to the original input binary.
+
+ In the case of Unicode codepoints, each codepoint is represented with the ASCII character 'U' followed by the ASCII character '+' followed by four to 6 hexidecimal digits.
+ Unicode number equivalents are not supported nor are ever intended to be supported to ensure simplicity in the design.
+ This makes the Unicode sequence output scriptable and usable as a data store.
+
+ Any time any processed data fails to properly represent a valid Unicode sequence that sequence is printed exactly as is (when printing codepoints) or is printed as-is (when printing binary strings).
+ The invalid data is printed with a context, such as the error color context.
+ The color context may be suppressed by appropriate parameters.
+ The printing of invalid data may be suppressed by the appropraite parameters.
+ When printing from a binary string to a Unicode codepoint, invalid data is printed as '0x' followed by the hexidecimal digit representation (all lower case).
+
+ When printing combining or width, the private use area is considered unknown but is not considered an error.
+ Anything else that is unknown is considered an error.
--- /dev/null
+# fss-0002
+#
+# license open-standard-license-1.0-or-later
+# version 2024/07/02
+#
+
+Output Specification:
+ The following output to modes are supported\:
+ - binary: Print the binary character sequences.
+ - codepoint: Print the Unicode codepoints.
+ - combining: Print whether or not the character is a combining character.
+ - width: Print the width of the character.
+
+Output to Binary:
+ The output is printed as raw UTF-8 character sequences without any special formatting.
+ May contain error data representing invalid characters (or codepoints).
+ Invalid characters (or codepoints) may be designated as an error using a context, such as a color context of "error".
+ All character codes, valid or not, may be printed as-is.
+ May not be combined with any other 'Output to' modes.
+
+Output to Codepoint:
+ Only upper case ASCII characters 'U', '+', '0' through '9', and 'A' through 'F' are allowed.
+ Always begins with 'U' and then '+'.
+ Is always separated by a single space (ASCII character 0x20) (optionally except for the final codepoint in a set which may be terminated by a new line or the end of a file).
+ May not contain non-ASCII values for designating characters (or codepoints) (which includes not allowing non-ASCII digits).
+ May not be combined with any other 'Output to' modes.
+
+Output to Combining:
+ A single character is used to represent combining, not-combinging, or unknown.
+ Is always separated by a single space (ASCII character 0x20) (optionally except for the final character in a set which may be terminated by a new line or the end of a file).
+ The upper case ASCII character 'C' is used to represent a combining character.
+ The upper case ASCII character 'N' is used to represent a non-combining character.
+ The ASCII '?' is used to represent either an invalid or an unknown character.
+ Invalid characters (or codepoints) may be designated as an error using a context, such as a color context of "error".
+ May not contain non-ASCII values for designating characters (or codepoints) (which includes not allowing non-ASCII digits).
+ May only be combined with 'Output to Width' mode.
+
+Output to Width:
+ A single character is used to represent width or unknown.
+ Is always separated by a single space (ASCII character 0x20) (optionally except for the final character in a set which may be terminated by a new line or the end of a file).
+ The ASCII character '0' is used to represent a 0-width character (generally this means a non-graph character).
+ The ASCII character '1' is used to represent a 1-width character.
+ The ASCII character '2' is used to represent a 2-width character.
+ The ASCII '?' is used to represent either an invalid or an unknown character.
+ Invalid characters (or codepoints) may be designated as an error using a context, such as a color context of "error".
+ May not contain non-ASCII values for designating characters (or codepoints) (which includes not allowing non-ASCII digits).
+ May only be combined with 'Output to Combining' mode.
+
+Output to Combining and Width:
+ When 'Output to Combining' is used with 'Output to Width', this operates exactly as 'Output to Width', except that when a valid combining character is detected, the ASCII 'C' character is used instead of the width.
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="The Featureless Linux Library project.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Open-Source">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Make, Fake, Controller, 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="article-content">
<p class="p">
- The <strong class="strong">Featureless Linux Library</strong> is a collection of standards, specifications, and software for providing a suite of Linux focused functionality. One of the main goal is to play on the word "feature" and provide a featureless library. That is, a library that is not always changing and being rewritten breaking <abbr title="Application Programming Interface">API</abbr> and <abbr title="Application Binary Interface">ABI</abbr> to introduce features. How this is achieved and to what extend this is achieved and followed is to be described in the documentation and specifications.
+ The <strong class="strong">Featureless Linux Library</strong> is a collection of standards, specifications, and software for providing a suite of Linux focused functionality.
+ One of the main goal is to play on the word "feature" and provide a featureless library.
+ That is, a library that is not always changing and being rewritten breaking <abbr title="Application Programming Interface">API</abbr> and <abbr title="Application Binary Interface">ABI</abbr> to introduce features.
+ How this is achieved and to what extend this is achieved and followed is to be described in the documentation and specifications.
</p>
<p class="p">
The projects can be found in five locations.
<li><a href="https://git.kevux.org/" class="link external">Kevux GIT Repository</a></li>
</ol>
<p class="p">
- The source code contains the plain text documentation describing the projects and specifications describing the standards. This website will be updated to present this material.
+ The source code contains the plain text documentation describing the projects and specifications describing the standards.
+ This website will be updated to present this material.
</p>
<p class="p">
- In addition to being a library, the <abbr title="Featureless Linux Library">FLL</abbr> also provides several programs. Some programs, such as <strong class="strong">Featureless Make</strong> (a build system similar to <strong class="strong">GNU Make</strong>), are forever part of the <abbr title="Featureless Linux Library">FLL</abbr>. Other programs, such as the <strong class="strong">Controller</strong> program, will eventually bud off into their own project space.
+ In addition to being a library, the <abbr title="Featureless Linux Library">FLL</abbr> also provides several programs.
+ Some programs, such as <strong class="strong">Featureless Make</strong> (a build system similar to <strong class="strong">GNU Make</strong>), are forever part of the <abbr title="Featureless Linux Library">FLL</abbr>.
+ Other programs, such as the <strong class="strong">Controller</strong> program, will eventually bud off into their own project space.
</p>
<p class="p">
Many of these files also include <a href="checksum.html" class="link">checksums</a> to help provide integrity (under <em class="em">Hash</em>) and authenticity (under <em class="em">Sign</em>).
<div class="article-content">
<p class="p">
- The current stable release series of <abbr title="Featureless Linux Library">FLL</abbr> is <code class="code">0.6</code>. The latest version of the stable release series is <code class="code">0.6.15</code>.
+ The current stable release series of the <abbr title="Featureless Linux Library">FLL</abbr> project is <code class="code">0.8</code>.
+ The latest version of the stable release series is <code class="code">0.8.0</code>.
+ Some of the programs that are external to the <abbr title="Featureless Linux Library">FLL</abbr> project might still be on a <code class="code">0.7</code> development release.
</p>
<p class="p">
- There are two different ways in which the project is released. The <em class="em">bare release</em> and the <em class="em">pre-packaged release</em>.
+ There are two different ways in which the project is released. The <em class="em">bare release</em> and the <em class="em">prepackaged release</em>.
</p>
<p class="p">
- A <em class="em">bare release</em> is the original project structure exactly as it appears in the Git source code repositories. The project is designed and intended to be hacked. As a result, the project must be converted into a package. There are different default supported package structures like <em class="em">monolithic</em>, <em class="em">level</em>, and <em class="em">individual</em>.
+ A <em class="em">bare release</em> is the original project structure exactly as it appears in the Git source code repositories.
+ The project is designed and intended to be hacked. As a result, the project must be converted into a package.
+ There are different default supported package structures like <em class="em">monolithic</em>, <em class="em">level</em>, and <em class="em">individual</em>.
</p>
<p class="p">
- A <em class="em">pre-packaged release</em> is the project packaged into a <em class="em">monolithic</em> structure. The programs are also pre-packaged to expect to link against a <em class="em">monolithic</em> <abbr title="Featureless Linux Library">FLL</abbr> package.
+ A <em class="em">prepackaged release</em> is the project packaged into a <em class="em">monolithic</em> structure. The programs are also prepackaged to expect to link against a <em class="em">monolithic</em> <abbr title="Featureless Linux Library">FLL</abbr> package.
</p>
<div class="center">
<table id="release-monolithic" class="table fll-release">
</thead>
<tbody class="body set">
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/monolithic/monolithic-fll-0.6.15.tar.gz" class="link download">FLL 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/monolithic/monolithic-fll-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/monolithic/monolithic-fll-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/monolithic/monolithic-fll-0.8.0.tar.gz" class="link download">FLL 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/monolithic/monolithic-fll-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/monolithic/monolithic-fll-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-byte_dump-0.6.15.tar.gz" class="link download">Byte Dump 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-byte_dump-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-byte_dump-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-byte_dump-0.8.0.tar.gz" class="link download">Byte Dump 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-byte_dump-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-byte_dump-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-control-0.6.15.tar.gz" class="link download">Control 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-control-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-control-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fake-0.8.0.tar.gz" class="link download">Fake 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fake-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fake-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-controller-0.6.15.tar.gz" class="link download">Controller 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-controller-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-controller-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_identify-0.8.0.tar.gz" class="link download">FSS Identify 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_identify-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_identify-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fake-0.6.15.tar.gz" class="link download">Fake 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fake-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fake-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_read-0.8.0.tar.gz" class="link download">FSS Read 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_read-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_read-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-firewall-0.6.15.tar.gz" class="link download">Firewall 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-firewall-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-firewall-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_write-0.8.0.tar.gz" class="link download">FSS Write 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_write-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-fss_write-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_list_read-0.6.15.tar.gz" class="link download">FSS Basic List Read 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_list_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_list_read-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-iki_read-0.8.0.tar.gz" class="link download">IKI Read 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-iki_read-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-iki_read-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_list_write-0.6.15.tar.gz" class="link download">FSS Basic List Write 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_list_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_list_write-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-iki_write-0.8.0.tar.gz" class="link download">IKI Write 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-iki_write-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-iki_write-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_read-0.6.15.tar.gz" class="link download">FSS Basic Read 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_read-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-status_code-0.8.0.tar.gz" class="link download">Status Code 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-status_code-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-status_code-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_write-0.6.15.tar.gz" class="link download">FSS Basic Write 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_basic_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_embedded_list_read-0.6.15.tar.gz" class="link download">FSS Embedded List Read 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_embedded_list_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_embedded_list_read-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_embedded_list_write-0.6.15.tar.gz" class="link download">FSS Embedded List Write 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_embedded_list_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_embedded_list_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_list_read-0.6.15.tar.gz" class="link download">FSS Extended List Read 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_list_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_list_read-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_list_write-0.6.15.tar.gz" class="link download">FSS Extended List Write 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_list_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_list_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_read-0.6.15.tar.gz" class="link download">FSS Extended Read 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_read-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_write-0.6.15.tar.gz" class="link download">FSS Extended Write 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_extended_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_identify-0.6.15.tar.gz" class="link download">FSS Identify 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_identify-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_identify-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_payload_read-0.6.15.tar.gz" class="link download">FSS Payload Read 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_payload_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_payload_read-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_payload_write-0.6.15.tar.gz" class="link download">FSS Payload Write 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_payload_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_payload_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_status_code-0.6.15.tar.gz" class="link download">FSS Status Code 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_status_code-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-fss_status_code-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-iki_read-0.6.15.tar.gz" class="link download">IKI Read 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-iki_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-iki_read-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-iki_write-0.6.15.tar.gz" class="link download">IKI Write 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-iki_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-iki_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-status_code-0.6.15.tar.gz" class="link download">Status Code 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-status_code-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-status_code-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-utf8-0.6.15.tar.gz" class="link download">Utf8 0.6.15</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-utf8-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/program/monolithic-utf8-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-utf8-0.8.0.tar.gz" class="link download">Utf8 0.8.0</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-utf8-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/program/monolithic-utf8-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
</tbody>
</table>
</thead>
<tbody class="body set">
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-byte_dump-0.6.15.tar.gz" class="link download">Byte Dump 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-byte_dump-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-byte_dump-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-byte_dump-0.8.0.tar.gz" class="link download">Byte Dump 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-byte_dump-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-byte_dump-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-controller-0.6.15.tar.gz" class="link download">Controller 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-controller-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-controller-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fake-0.8.0.tar.gz" class="link download">Fake 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fake-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fake-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fake-0.6.15.tar.gz" class="link download">Fake 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fake-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fake-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_identify-0.8.0.tar.gz" class="link download">FSS Identify 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_identify-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_identify-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-firewall-0.6.15.tar.gz" class="link download">Firewall 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-firewall-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-firewall-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_read-0.8.0.tar.gz" class="link download">FSS Read 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_read-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_read-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_identify-0.6.15.tar.gz" class="link download">FSS Identify 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_identify-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_identify-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_write-0.8.0.tar.gz" class="link download">FSS Write 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_write-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-fss_write-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_basic_read-0.6.15.tar.gz" class="link download">FSS Basic Read 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_basic_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_basic_read-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-iki_read-0.8.0.tar.gz" class="link download">IKI Read 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-iki_read-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-iki_read-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_basic_write-0.6.15.tar.gz" class="link download">FSS Basic Write 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_basic_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_basic_write-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-iki_write-0.8.0.tar.gz" class="link download">IKI Write 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-iki_write-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-iki_write-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_extended_read-0.6.15.tar.gz" class="link download">FSS Extended Read 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_extended_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_extended_read-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-status_code-0.8.0.tar.gz" class="link download">Status Code 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-status_code-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-status_code-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_extended_write-0.6.15.tar.gz" class="link download">FSS Extended Write 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_extended_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_extended_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_payload_read-0.6.15.tar.gz" class="link download">FSS Payload Read 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_payload_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_payload_read-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_payload_write-0.6.15.tar.gz" class="link download">FSS Payload Write 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_payload_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_payload_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_status_code-0.6.15.tar.gz" class="link download">FSS Status Code 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_status_code-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-fss_status_code-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-iki_read-0.6.15.tar.gz" class="link download">IKI Read 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-iki_read-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-iki_read-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-iki_write-0.6.15.tar.gz" class="link download">IKI Write 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-iki_write-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-iki_write-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-status_code-0.6.15.tar.gz" class="link download">Status Code 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-status_code-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-status_code-0.6.15.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-utf8-0.6.15.tar.gz" class="link download">Utf8 0.6.15 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-utf8-0.6.15.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.6/15/stand_alone/stand_alone-utf8-0.6.15.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-utf8-0.8.0.tar.gz" class="link download">Utf8 0.8.0 (Stand Alone)</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-utf8-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/fll/0.8/0/stand_alone/stand_alone-utf8-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
</tbody>
</table>
</div>
<p class="p">
- The pre-packaged releases may also be found on the following external websites:
+ The prepackaged releases may also be found on the following external websites:
</p>
<ul>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Monolithic</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/monolithic/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/monolithic/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Level</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/level/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/level/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Individual</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/individual/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/individual/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Programs</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/program/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/program/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Stand Alone</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/stand_alone/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.6/0.6.15/stand_alone/</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Monolithic</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/monolithic/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/monolithic/</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Level</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/level/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/level/</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Individual</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/individual/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/individual/</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Programs</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/program/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/program/</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Stand Alone</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/stand_alone/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.8/0.8.0/stand_alone/</a></li>
</ul>
<p class="p">
The bare releases may be found on the following websites:
</p>
<ul>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/fll/releases/tag/0.6.15" class="link external">https://github.com/thekevinday/fll/releases/tag/0.6.15</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: GitLab</strong>: <a href="https://gitlab.com/kevuxer/fll/-/releases/0.6.15" class="link external">https://gitlab.com/kevuxer/fll/-/releases/0.6.15</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/fll/releases/tag/0.6.15" class="link external">https://codeberg.org/kevuxer/fll/releases/tag/0.6.15</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/fll/releases/tag/0.8.0" class="link external">https://github.com/thekevinday/fll/releases/tag/0.8.0</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: GitLab</strong>: <a href="https://gitlab.com/kevuxer/fll/-/releases/0.8.0" class="link external">https://gitlab.com/kevuxer/fll/-/releases/0.8.0</a></li>
+ <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/fll/releases/tag/0.8.0" class="link external">https://codeberg.org/kevuxer/fll/releases/tag/0.8.0</a></li>
</ul>
<ol>
<li>
<div class="article-content">
<p class="p">
- The current development release series of <abbr title="Featureless Linux Library">FLL</abbr> is <code class="code">0.7</code>. The latest version of the development release series is <code class="code">0.7.3</code>.
+ The is currently no development release series of the <abbr title="Featureless Linux Library">FLL</abbr> project.
+ There are projects dependent on the stable release series of the <abbr title="Featureless Linux Library">FLL</abbr> project.
+ The latest version of these development projects is <code class="code">0.7.4</code>.
</p>
<p class="p">
- There are two different ways in which the project is released. The <em class="em">bare release</em> and the <em class="em">pre-packaged release</em>.
+ There are two different ways in which the project is released.
+ The <em class="em">bare release</em> and the <em class="em">prepackaged release</em>.
</p>
<p class="p">
- A <em class="em">bare release</em> is the original project structure exactly as it appears in the Git source code repositories. The project is designed and intended to be hacked. As a result, the project must be converted into a package. There are different default supported package structures like <em class="em">monolithic</em>, <em class="em">level</em>, and <em class="em">individual</em>.
+ A <em class="em">bare release</em> is the original project structure exactly as it appears in the Git source code repositories.
+ The project is designed and intended to be hacked.
+ As a result, the project must be converted into a package.
+ There are different default supported package structures like <em class="em">monolithic</em>, <em class="em">level</em>, and <em class="em">individual</em>.
</p>
<p class="p">
- A <em class="em">pre-packaged release</em> is the project packaged into a <em class="em">monolithic</em> structure. The programs are also pre-packaged to expect to link against a <em class="em">monolithic</em> <abbr title="Featureless Linux Library">FLL</abbr> package.
+ A <em class="em">prepackaged release</em> is the project packaged into a <em class="em">monolithic</em> structure.
+ The programs are also prepackaged to expect to link against a <em class="em">monolithic</em> <abbr title="Featureless Linux Library">FLL</abbr> package.
</p>
- <div class="center">
- <table id="development-monolithic" class="table fll-release">
- <caption class="caption"><abbr title="Featureless Linux Library">FLL</abbr> Pre-packaged Source Files</caption>
- <thead class="head set">
- <tr class="row">
- <td class="column">Package</td>
- <td class="column">Hash</td>
- <td class="column">Sign</td>
- </tr>
- </thead>
- <tbody class="body set">
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/monolithic/monolithic-fll-0.7.3.tar.gz" class="link download">FLL 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/monolithic/monolithic-fll-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/monolithic/monolithic-fll-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-byte_dump-0.7.3.tar.gz" class="link download">Byte Dump 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-byte_dump-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-byte_dump-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-example-0.7.3.tar.gz" class="link download">Example 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-example-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-example-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fake-0.7.3.tar.gz" class="link download">Fake 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fake-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fake-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-firewall-0.7.3.tar.gz" class="link download">Firewall 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-firewall-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-firewall-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_identify-0.7.3.tar.gz" class="link download">FSS Identify 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_identify-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_identify-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_read-0.7.3.tar.gz" class="link download">FSS Read 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_read-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_read-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_write-0.7.3.tar.gz" class="link download">FSS Write 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_write-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-fss_write-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-iki_read-0.7.3.tar.gz" class="link download">IKI Read 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-iki_read-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-iki_read-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-iki_write-0.7.3.tar.gz" class="link download">IKI Write 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-iki_write-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-iki_write-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-status_code-0.7.3.tar.gz" class="link download">Status Code 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-status_code-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-status_code-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-utf8-0.7.3.tar.gz" class="link download">Utf8 0.7.3</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-utf8-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/program/monolithic-utf8-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- </tbody>
- </table>
- </div>
<p class="p">
- There are also <strong class="strong">stand alone</strong> sources and related files for some of the programs:
+ There are also custom <em class="em">stand_alone</em> builds that require copying in the <abbr title="Featureless Linux Library">FLL</abbr> <code class="code">0.8.0</code> source code.
+ These <em class="em">stand_alone</em> builds are usually described and documented using the <code class="code">data/build/stand_alone/fakefile</code> file.
+ The are often operated using a command like: <code class="code">fake -U build/stand_alone/</code>.
+ These <em class="em">stand_alone</em> builds are available for both the <em class="em">bare releases</em> and the <em class="em">prepackaged releases</em>.
</p>
<div class="center">
- <table id="development-stand_alone" class="table fll-release">
- <caption class="caption"><abbr title="Featureless Linux Library">FLL</abbr> Pre-packaged Source Files (Stand Alone)</caption>
+ <table id="development-monolithic" class="table additional-release">
+ <caption class="caption">Additional Projects Utilizing <abbr title="Featureless Linux Library">FLL</abbr></caption>
<thead class="head set">
<tr class="row">
<td class="column">Package</td>
</thead>
<tbody class="body set">
<tr class="row">
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-byte_dump-0.7.3.tar.gz" class="link download">Byte Dump 0.7.3 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-byte_dump-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-byte_dump-0.7.3.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/additional/control/0.8/0/control-0.8.0.tar.gz" class="link download">Control 0.8.0</a></td>
+ <td class="column"><a href="release/additional/control/0.8/0/control-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/additional/control/0.8/0/control-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-example-0.7.3.tar.gz" class="link download">Example 0.7.3 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-example-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-example-0.7.3.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/additional/controller/0.8/0/controller-0.8.0.tar.gz" class="link download">Controller 0.8.0</a></td>
+ <td class="column"><a href="release/additional/controller/0.8/0/controller-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/additional/controller/0.8/0/controller-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-fake-0.7.3.tar.gz" class="link download">Fake 0.7.3 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-fake-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-fake-0.7.3.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/additional/firewall/0.8/0/kevux-firewall-0.8.0.tar.gz" class="link download">(Kevux) Firewall 0.8.0</a></td>
+ <td class="column"><a href="release/additional/firewall/0.8/0/kevux-firewall-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/additional/firewall/0.8/0/kevux-firewall-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
<tr class="row">
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-firewall-0.7.3.tar.gz" class="link download">Firewall 0.7.3 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-firewall-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-firewall-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-utf8-0.7.3.tar.gz" class="link download">Utf8 0.7.3 (Stand Alone)</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-utf8-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/fll/0.7/3/stand_alone/stand_alone-utf8-0.7.3.tar.asc" class="link download">GPG</a></td>
+ <td class="column"><a href="release/additional/tools/0.8/0/kevux-tools-0.8.0.tar.gz" class="link download">(Kevux) Tools 0.8.0</a></td>
+ <td class="column"><a href="release/additional/tools/0.8/0/kevux-tools-0.8.0.tar.sha256" class="link download">SHA256</a></td>
+ <td class="column"><a href="release/additional/tools/0.8/0/kevux-tools-0.8.0.tar.asc" class="link download">GPG</a></td>
</tr>
</tbody>
</table>
</div>
<p class="p">
- Additional projects utilizing <abbr title="Featureless Linux Library">FLL</abbr> are also available:
- </p>
- <div class="center">
- <table id="development-stand_alone" class="table fll-release">
- <caption class="caption">Additional Projects Utilizing <abbr title="Featureless Linux Library">FLL</abbr></caption>
- <thead class="head set">
- <tr class="row">
- <td class="column">Package</td>
- <td class="column">Hash</td>
- <td class="column">Sign</td>
- </tr>
- </thead>
- <tbody class="body set">
- <tr class="row">
- <td class="column"><a href="release/additional/control/0.7/3/control-0.7.3.tar.gz" class="link download">Control 0.7.3</a></td>
- <td class="column"><a href="release/additional/control/0.7/3/control-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/additional/control/0.7/3/control-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/additional/controller/0.7/3/controller-0.7.3.tar.gz" class="link download">Controller 0.7.3</a></td>
- <td class="column"><a href="release/additional/controller/0.7/3/controller-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/additional/controller/0.7/3/controller-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- <tr class="row">
- <td class="column"><a href="release/additional/kevux-tools/0.7/3/kevux-tools-0.7.3.tar.gz" class="link download">Kevux-Tools 0.7.3</a></td>
- <td class="column"><a href="release/additional/kevux-tools/0.7/3/kevux-tools-0.7.3.tar.sha256" class="link download">SHA256</a></td>
- <td class="column"><a href="release/additional/kevux-tools/0.7/3/kevux-tools-0.7.3.tar.asc" class="link download">GPG</a></td>
- </tr>
- </tbody>
- </table>
- </div>
- <p class="p">
- The pre-packaged releases may also be found on the following external websites:
- </p>
- <ul>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Monolithic</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/monolithic/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/monolithic/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Level</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/level/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/level/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Individual</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/individual/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/individual/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Programs</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/program/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/program/</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Sourceforge, Stand Alone</strong>: <a href="https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/stand_alone/" class="link external">https://sourceforge.net/projects/fll/files/FLL-0.7/0.7.3/stand_alone/</a></li>
- </ul>
- <p class="p">
- The bare releases may be found on the following websites:
+ The <strong class="strong">Control</strong> releases may also be found in the following external websites:
</p>
<ul>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/fll/releases/tag/0.7.3" class="link external">https://github.com/thekevinday/fll/releases/tag/0.7.3</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: GitLab</strong>: <a href="https://gitlab.com/kevuxer/fll/-/releases/0.7.3" class="link external">https://gitlab.com/kevuxer/fll/-/releases/0.7.3</a></li>
- <li><strong class="strong"><abbr title="Featureless Linux Library">FLL</abbr>: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/fll/releases/tag/0.7.3" class="link external">https://codeberg.org/kevuxer/fll/releases/tag/0.7.3</a></li>
+ <li><strong class="strong">Control: Sourceforge</strong>: <a href="https://sourceforge.net/projects/fll-control/files/0.7/0.7.4/" class="link external">https://sourceforge.net/projects/fll-control/files/0.7/0.7.4/</a></li>
+ <li><strong class="strong">Control: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/control/releases/tag/0.7.4" class="link external">https://github.com/thekevinday/control/releases/tag/0.7.4</a></li>
+ <li><strong class="strong">Control: GitLab</strong>: <a href="https://gitlab.com/kevuxer/control/-/releases/0.7.4" class="link external">https://gitlab.com/kevuxer/control/-/releases/0.7.4</a></li>
+ <li><strong class="strong">Control: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/control/releases/tag/0.7.4" class="link external">https://codeberg.org/kevuxer/control/releases/tag/0.7.4</a></li>
</ul>
<p class="p">
- The Control releases may be found in the following external websites:
+ The <strong class="strong">Controller</strong> releases may also be found in the following external websites:
</p>
<ul>
- <li><strong class="strong">Control: Sourceforge</strong>: <a href="https://sourceforge.net/projects/fll-control/files/0.7/0.7.3/" class="link external">https://sourceforge.net/projects/fll-control/files/0.7/0.7.3/</a></li>
- <li><strong class="strong">Control: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/control/releases/tag/0.7.3" class="link external">https://github.com/thekevinday/control/releases/tag/0.7.3</a></li>
- <li><strong class="strong">Control: GitLab</strong>: <a href="https://gitlab.com/kevuxer/control/-/releases/0.7.3" class="link external">https://gitlab.com/kevuxer/control/-/releases/0.7.3</a></li>
- <li><strong class="strong">Control: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/control/releases/tag/0.7.3" class="link external">https://codeberg.org/kevuxer/control/releases/tag/0.7.3</a></li>
+ <li><strong class="strong">Controller: Sourceforge</strong>: <a href="https://sourceforge.net/projects/fll-controller/files/0.7/0.7.4/" class="link external">https://sourceforge.net/projects/fll-controller/files/0.7/0.7.4/</a></li>
+ <li><strong class="strong">Controller: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/controller/releases/tag/0.7.4" class="link external">https://github.com/thekevinday/controller/releases/tag/0.7.4</a></li>
+ <li><strong class="strong">Controller: GitLab</strong>: <a href="https://gitlab.com/kevuxer/controller/-/releases/0.7.4" class="link external">https://gitlab.com/kevuxer/controller/-/releases/0.7.4</a></li>
+ <li><strong class="strong">Controller: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/controller/releases/tag/0.7.4" class="link external">https://codeberg.org/kevuxer/controller/releases/tag/0.7.4</a></li>
</ul>
<p class="p">
- The Controller releases may be found in the following external websites:
+ The <strong class="strong">(Kevux) Firewall</strong> releases may also be found in the following external websites:
</p>
<ul>
- <li><strong class="strong">Controller: Sourceforge</strong>: <a href="https://sourceforge.net/projects/fll-controller/files/0.7/0.7.3/" class="link external">https://sourceforge.net/projects/fll-controller/files/0.7/0.7.3/</a></li>
- <li><strong class="strong">Controller: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/controller/releases/tag/0.7.3" class="link external">https://github.com/thekevinday/controller/releases/tag/0.7.3</a></li>
- <li><strong class="strong">Controller: GitLab</strong>: <a href="https://gitlab.com/kevuxer/controller/-/releases/0.7.3" class="link external">https://gitlab.com/kevuxer/controller/-/releases/0.7.3</a></li>
- <li><strong class="strong">Controller: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/controller/releases/tag/0.7.3" class="link external">https://codeberg.org/kevuxer/controller/releases/tag/0.7.3</a></li>
+ <li><strong class="strong">(Kevux) Tools: Sourceforge</strong>: <a href="https://sourceforge.net/projects/kevux-firewall/files/0.7/0.7.4/" class="link external">https://sourceforge.net/projects/kevux-firewall/files/0.7/0.7.4/</a></li>
+ <li><strong class="strong">(Kevux) Tools: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/kevux-firewall/releases/tag/0.7.4" class="link external">https://github.com/thekevinday/kevux-firewall/releases/tag/0.7.4</a></li>
+ <li><strong class="strong">(Kevux) Tools: GitLab</strong>: <a href="https://gitlab.com/kevuxer/kevux-firewall/-/releases/0.7.4" class="link external">https://gitlab.com/kevuxer/kevux-firewall/-/releases/0.7.4</a></li>
+ <li><strong class="strong">(Kevux) Tools: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/kevux-firewall/releases/tag/0.7.4" class="link external">https://codeberg.org/kevuxer/kevux-firewall/releases/tag/0.7.4</a></li>
</ul>
<p class="p">
- The Kevux-Tools releases may be found in the following external websites:
+ The <strong class="strong">(Kevux) Tools</strong> releases may also be found in the following external websites:
</p>
<ul>
- <li><strong class="strong">Kevux-Tools: Sourceforge</strong>: <a href="https://sourceforge.net/projects/kevux-tools/files/0.7/0.7.3/" class="link external">https://sourceforge.net/projects/kevux-tools/files/0.7/0.7.3/</a></li>
- <li><strong class="strong">Kevux-Tools: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/kevux-tools/releases/tag/0.7.3" class="link external">https://github.com/thekevinday/kevux-tools/releases/tag/0.7.3</a></li>
- <li><strong class="strong">Kevux-Tools: GitLab</strong>: <a href="https://gitlab.com/kevuxer/kevux-tools/-/releases/0.7.3" class="link external">https://gitlab.com/kevuxer/kevux-tools/-/releases/0.7.3</a></li>
- <li><strong class="strong">Kevux-Tools: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/kevux-tools/releases/tag/0.7.3" class="link external">https://codeberg.org/kevuxer/kevux-tools/releases/tag/0.7.3</a></li>
+ <li><strong class="strong">(Kevux) Tools: Sourceforge</strong>: <a href="https://sourceforge.net/projects/kevux-tools/files/0.7/0.7.4/" class="link external">https://sourceforge.net/projects/kevux-tools/files/0.7/0.7.4/</a></li>
+ <li><strong class="strong">(Kevux) Tools: GitHub<span class="super">1</span></strong>: <a href="https://github.com/thekevinday/kevux-tools/releases/tag/0.7.4" class="link external">https://github.com/thekevinday/kevux-tools/releases/tag/0.7.4</a></li>
+ <li><strong class="strong">(Kevux) Tools: GitLab</strong>: <a href="https://gitlab.com/kevuxer/kevux-tools/-/releases/0.7.4" class="link external">https://gitlab.com/kevuxer/kevux-tools/-/releases/0.7.4</a></li>
+ <li><strong class="strong">(Kevux) Tools: Codeberg</strong>: <a href="https://codeberg.org/kevuxer/kevux-tools/releases/tag/0.7.4" class="link external">https://codeberg.org/kevuxer/kevux-tools/releases/tag/0.7.4</a></li>
</ul>
<ol>
<li>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0000, basic">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0000, basic">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0001, extended">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0001, extended">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0002, basic list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0002, basic list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0003, extended list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0003, extended list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0004, very basic list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0004, very basic list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0005, somewhat basic list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0005, somewhat basic list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0006, somewhat extended list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0006, somewhat extended list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0007, very extended list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0007, very extended list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0008, embedded list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0008, embedded list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0009, reverse mapping">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0009, reverse mapping">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-000a, extended reverse mapping">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-000a, extended reverse mapping">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-000b, simple list">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-000b, simple list">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-000c, iki text">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-000c, iki text">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-000d, basic rule">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-000d, basic rule">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-000e, payload">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-000e, payload">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-000f, simple packet">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-000f, simple packet">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, fss-0010, encrypted simple packet">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0010, encrypted simple packet">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, iki-0000, unrestricted">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, iki-0000, unrestricted">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, iki-0001, basic">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, iki-0001, basic">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, iki-0002, simple script">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, iki-0002, simple script">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Featurless Linux Library Specifications">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, specification, standard, Time, EpochTime">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, Time, EpochTime">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
Everything else on this website that is source code, including <abbr title="Hyper Text Markup Language">HTML</abbr> markup, <abbr title="Cascading Style Sheets">CSS</abbr>, and Javascript, is under <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr> license.
</p>
<p class="p">
- © 2022-2025 Kevin Day
+ © 2022-2026 Kevin Day
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- The <abbr title="Featureless Linux Library">FLL</abbr> source code is © 2007-2025 Kevin Day under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr> license.
+ The <abbr title="Featureless Linux Library">FLL</abbr> source code is © 2007-2026 Kevin Day under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr> license.
</p>
<p class="p">
- The <abbr title="Featureless Linux Library">FLL</abbr> standards and specifications are © 2007-2025 Kevin Day under the <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a>. The <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a> is under active development and may be of a lesser version, such as 0.5. For simplicity, these are being referred to as 1.0 as the goal and intent of the license grant is for version 1 or greater. Therefore any version less than 1 is implicitly assumed to be of version 1 or greater.
+ The <abbr title="Featureless Linux Library">FLL</abbr> standards and specifications are © 2007-2026 Kevin Day under the <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a>. The <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a> is under active development and may be of a lesser version, such as 0.5. For simplicity, these are being referred to as 1.0 as the goal and intent of the license grant is for version 1 or greater. Therefore any version less than 1 is implicitly assumed to be of version 1 or greater.
<p class="p">
- Documentation contained within the <abbr title="Featureless Linux Library">FLL</abbr> that is not under a specification license is © 2007-2025 Kevin Day under the <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC By SA 4.0</abbr>.
+ Documentation contained within the <abbr title="Featureless Linux Library">FLL</abbr> that is not under a specification license is © 2007-2026 Kevin Day under the <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC By SA 4.0</abbr>.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- All of the projects listed on the Projects pages are either part of the <abbr title="Featureless Linux Library">FLL</abbr> or are based on the <abbr title="Featureless Linux Library">FLL</abbr>. As a result they are © 2007-2025 Kevin Day under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr>.
+ All of the projects listed on the Projects pages are either part of the <abbr title="Featureless Linux Library">FLL</abbr> or are based on the <abbr title="Featureless Linux Library">FLL</abbr>. As a result they are © 2007-2026 Kevin Day under the <abbr title="GNU Lesser General Public License version 2.1 or greater">LGPLv2.1+</abbr>.
</p>
</div>
</article>
</header>
<div class="article-content">
<p class="p">
- Documentation that is used to described specifications (included Application Programming Interfaces) are © 2007-2025 Kevin Day under the <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a>.
+ Documentation that is used to described specifications (included Application Programming Interfaces) are © 2007-2026 Kevin Day under the <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a>.
</p>
<p class="p">
- All remaining documentation that does not fall under the <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a> are © 2007-2025 Kevin Day under the <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC By SA 4.0</abbr>.
+ All remaining documentation that does not fall under the <a href="licenses/oslv1.html" class="link"><abbr title="Open Standard License version 1 or greater">OSLv1+</abbr></a> are © 2007-2026 Kevin Day under the <abbr title="Creative Commons Attribution Share Alike 4.0 International">CC By SA 4.0</abbr>.
</p>
</div>
</article>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Kevux Systems, providing Featureless Linux Library and related programs as well as the Kevux Linux distributions.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Distribution, Open-Source, News">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Make, Fake, Controller, UTF-8, Distribution, Open-Source, News">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
<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">2025 / 11 / 22</div>
- <a href="news/2025/2025_11_22-fll_0_6_15_and_0_7_3_releases.html" class="nav-text link">FLL 0.6.15 and FLL 0.7.3 Releases</a>
- </div>
- <div class="nav-item block">
- <div class="nav-text notice">2025 / 08 / 09</div>
- <a href="news/2025/2025_08_09-rp500_lap_top.html" class="nav-text link">RP500 Lap Top</a>
- </div>
- <div class="nav-item block">
- <div class="nav-text notice">2025 / 07 / 04</div>
- <a href="news/2025/2025_07_04-fll_0_6_14_and_0_7_2_releases.html" class="nav-text link">FLL 0.6.14 and FLL 0.7.2 Releases</a>
- </div>
- <div class="nav-item block">
- <div class="nav-text notice">2025 / 06 / 26</div>
- <a href="news/2025/2025_06_26-the_lcg_ai.html" class="nav-text link">The LCG AI</a>
- </div>
- <div class="nav-item block">
- <div class="nav-text notice">2025 / 04 / 30</div>
- <a href="news/2025/2025_04_30-fll_0_6_13_and_0_7_1_releases.html" class="nav-text link">FLL 0.6.13 and FLL 0.7.1 Releases</a>
- </div>
- <div class="nav-item block">
- <div class="nav-text notice">2025 / 01 / 08</div>
- <a href="news/2025/2025_01_08-fll_0_7_0_release.html" class="nav-text link">FLL 0.7.0 Release</a>
+ <div class="nav-text notice">2026 / 01 / 01</div>
+ <a href="news/2026/2026_01_01-fll_0_8_0_release.html" class="nav-text link">FLL 0.8.0 Release</a>
</div>
<div class="nav-item block">
<a href="news/2024.html" class="nav-text link">Year 2024 News</a>
<h1 class="section-title h h1">News</h1>
</header>
- <article id="2025_11_22-fll_0_6_15_and_0_7_3_releases" class="article">
+ <article id="2026_01_01-fll_0_8_0_release" class="article">
<header class="article-header header">
- <h2 id="2025_11_22-fll_0_6_15_and_0_7_3_releases-title" class="article-title h h2">2025 / 11 / 22 - FLL 0.6.15 and FLL 0.7.3 Releases</h2>
+ <h2 id="2026_01_01-fll_0_8_0_release-title" class="article-title h h2">2026 / 01 / 01 - FLL 0.8.0 Release</h2>
</header>
<div class="article-content">
<p class="p">
- The <strong class="strong">Featureless Linux Library</strong> stable version <code class="code">0.6.15</code> and development version <code class="code">0.7.3</code> are released.
- </p>
- <p class="p">
- The stable version <code class="code">0.6.15</code> has a small number of security fixes and a few minor bug fixes.
- </p>
- <p class="p">
- The development version <code class="code">0.7.3</code> is the final planned development release for the <code class="code">0.7.x</code> release series.
- The <abbr title="Application Programming Interface">API</abbr> is considered stable and ready to use for a <code class="code">0.8.x</code> stable release.
- The month of December 2025 will be used for testing and final preparations for an official <code class="code">0.8.0</code> stable release in January 2026.
- </p>
- <p class="p">
- The <code class="code">controller</code> project has a new feature where a <code class="code">controlfile</code> (or an <code class="code">initfile</code> for the <code class="code">init</code> program) is supported.
- This makes the behavior more similar to a <code class="code">fakefile</code> or similar configuration patterns.
- </p>
- <p class="p">
- The <code class="code">firewall</code> program is being relocated into its own project and therefore repository.
- The <code class="code">0.7.3</code> is the last <strong class="strong">Featureless Linux Library</strong> release that will contain it.
- </p>
- <p class="p">
- Expect to see a great deal of development in the <code class="code">controller</code>, <code class="code">control</code>, <code class="code">firewall</code>, and the <code class="code">kevux-tools</code> projects for the year 2026.
- There will not be <code class="code">0.8.0</code> releases of these projects at the same time as the <code class="code">0.8.0</code> <strong class="strong">Featureless Linux Library</strong> release in January 2026.
- These projects are simply not ready yet for that and a stable <strong class="strong">Featureless Linux Library</strong> release truly needs to be in place before these projects can be properly completed.
- </p>
- <p class="p">
- The development version <code class="code">0.9.x</code> versions will likely be focused on networking, better error handling (including error recoverability), some standard formats like HTML and JSON, more configuration via environment variables, and more advanced string matching (including regular expressions).
- </p>
- <p class="p">
- <a id="2025_11_22-fll_0_6_15_and_0_7_3_releases-more" href="news/2025/2025_11_22-fll_0_6_15_and_0_7_3_releases.html" class="content link" aria-labelledby="2025_11_22-fll_0_6_15_and_0_7_3_releases-more 2025_11_22-fll_0_6_15_and_0_7_3_releases-title">Continue reading…</a>
+ The <strong class="strong">Featureless Linux Library</strong> stable version <code class="code">0.8.0</code> is released.
</p>
- </div>
- </article>
-
- <article id="2025_08_09-rp500_lap_top" class="article">
- <header class="article-header header separate">
- <h2 id="2025_08_09-rp500_lap_top-title" class="article-title h h2">2025 / 08 / 09 - RP500 Lap Top</h2>
- </header>
- <div class="article-content">
- <p class="p">
- I have decided to make a <em class="em">Lap Top</em> computer.
- I've really enjoyed laptops like the <strong class="strong">Purism</strong> laptops and the <strong class="strong">System76</strong> laptops.
- A laptop eventually has some problem, such as a dead battery or a damaged case, and replacements become hard to find.
- The <strong class="strong">Raspberry Pi 500 Keyboard</strong> along with the <strong class="strong">Raspberry Pi Monitor</strong> together provide a <em class="em">Lap Top</em> alternative to laptops that can better stand the test of time.
- </p>
- <p class="p">
- The <strong class="strong">Raspberry Pi 500 Keyboard</strong> computer is approximately $100 dollars.
- The <strong class="strong">Raspberry Pi Monitor</strong> is approximately $100 dollars.
- With the selection of additional parts, this can make for a relatively inexpensive laptop alternative.
- Add a decent power source.
- Add a <abbr title="Universal Serial Bus">USB</abbr>.
- And tada!
- I have the basics for a laptop alternative, dubbed a <em class="em">Lap Top</em> (with an emphasis on the space between the two words).
- </p>
- <p class="p">
- This is all well and good but to make it really useful and usable there needs to be additional tweaks and accessories to get the most portability out of this.
- The <strong class="strong">Raspberry Pi 500 Keyboard</strong> computer also needs some modifications to make it work correctly.
- </p>
<p class="p">
- There are also some problems with this project.
- The more obvious being the cabling and extra parts.
- Not having a good complete case or carrying bag is also another concern.
+ I'm starting the year off with the <code class="code">0.8.0</code> stable release.<br>
+ This release marks a major milestone for the <abbr title="Featureless Linux Library">FLL</abbr> project.<br>
+ Expect to see a lot more development in the programs and software that utilizes this stable release all year long.<br>
+ This release represents approximately three years of off and on programming while simultaneously using the software in its developmental state.
</p>
- <p class="p">
- This article presents my particular approach, design, modifications, success, and failures in the creation and usage of my very own <strong class="strong">RP 500 Lap Top</strong>.
- </p>
- <p class="p">
- <a id="2025_08_09-rp500_lap_top-more" href="news/2025/2025_08_09-rp500_lap_top.html" class="content link" aria-labelledby="2025_08_09-rp500_lap_top-more 2025_08_09-rp500_lap_top-title">Continue reading…</a>
- </p>
- </div>
- </article>
- <article id="2025_07_04-fll_0_6_14_and_0_7_2_releases" class="article">
- <header class="article-header header separate">
- <h2 id="2025_07_04-fll_0_6_14_and_0_7_2_releases-title" class="article-title h h2">2025 / 07 / 04 - FLL 0.6.14 and FLL 0.7.2 Releases</h2>
- </header>
-
- <div class="article-content">
- <p class="p">
- The <strong class="strong">Featureless Linux Library</strong> stable version <code class="code">0.6.14</code> and development version <code class="code">0.7.2</code> are released.
- </p>
<p class="p">
- This is a special <em class="em">4th of July</em> release to celebrate liberty in open-source.
- Open-Source Software and the Internet should be free, open, and unregulated to allow for peace and prosperity.
- And the <em class="em">4th of July</em> is a good symbol of that.
+ The official release date is intended to be some time after the <abbr title="Coordinated Universal Time">UTC</abbr> (time zone 0) reaches January 1, 2026.<br>
+ This is being done explicitly because the project and its source code is available to the whole world and I am trying to make all of my times based on <abbr title="Coordinated Universal Time">UTC</abbr>.<br>
+ Following <abbr title="Coordinated Universal Time">UTC</abbr> to make released and represent dates and times makes more sense than using some local or regional time zone.
</p>
- <p class="p">
- The stable version <code class="code">0.6.14</code> has only a few minor changes.
- </p>
- <p class="p">
- The scripts are updated to a new practice.
- The clean up changes are usually not mentioned but this one is notable.
- The behavior of using echo with a pipe is replaced with using <code class="code"><<<</code>.
- The grep commands have been made more consistent.
- </p>
- <p class="p">
- <a id="2025_07_04-fll_0_6_14_and_0_7_2_releases-more" href="news/2025/2025_07_04-fll_0_6_14_and_0_7_2_releases.html" class="content link" aria-labelledby="2025_07_04-fll_0_6_14_and_0_7_2_releases-more 2025_07_04-fll_0_6_14_and_0_7_2_releases-title">Continue reading…</a>
- </p>
- </div>
- </article>
-
- <article id="2025_06_26-the_lcg_ai" class="article">
- <header class="article-header header separate">
- <h2 id="2025_06_26-the_lcg_ai-title" class="article-title h h2">2025 / 06 / 26 - The LCG AI</h2>
- </header>
- <div class="article-content">
- <p class="p">
- The <strong class="strong">Lossy Computer Generator</strong> (<abbr title="Lossy Computer Generator">LCG</abbr>) is a new term that I have created to classify the specific type of <strong class="strong">Artificial Intelligence</strong> (<abbr title="Artificial Intelligence">AI</abbr>) that has currently become popular.
- </p>
- <p class="p">
- The word "<em class="em">Lossy</em>" represents how parts of the original data is lost and reproduction of the original data is not likely to be identical.
- </p>
- <p class="p">
- The words "<em class="em">computer generation</em>" plays on how data, as with Computer Graphics (<abbr title="Computer Graphics">CG</abbr>), is generated by the computer.
- </p>
- <p class="p">
- <abbr title="Lossy Computer Generator">LCG</abbr> includes the currently popular forms of <abbr title="Artificial Intelligence">AI</abbr> known as <a href="https://en.wikipedia.org/w/index.php?title=Large_language_model&oldid=1297407810" class="link external"><strong class="strong">Large Language Models</strong></a> (<abbr title="Large Language Models">LLMs</abbr>), <a href="https://en.wikipedia.org/w/index.php?title=Small_language_model&oldid=1297349589" class="link external"><strong class="strong">Small Language Models</strong></a> (<abbr title="Small Language Models">SLMs</abbr>), and <a href="https://en.wikipedia.org/w/index.php?title=Neural_network_(machine_learning)&oldid=1297333092" class="link external"><strong class="strong">Neural Networks</strong></a>.
- </p>
- <p class="p">
- A <strong class="strong">Neural Network</strong> is a form of <abbr title="Artificial Intelligence">AI</abbr> that has been around <em class="em">as far back as the late 1700s</em>.
- Types of <strong class="strong">Neural Networks</strong> used today are: <abbr title="Large Language Models">LLMs</abbr> and <abbr title="Small Language Models">SLMs</abbr>.
- </p>
- <p class="p">
- A <abbr title="Large Language Model">LLM</abbr> is what people are now casually calling <abbr title="Artificial Intelligence">AI</abbr>.
- A very simplified description of how an <abbr title="Large Language Model">LLM</abbr> works is that it copies the data into memory and remaps it into a modified form.
- Restoring the mapped data requires re-creating the original data at run time, similar to how <abbr title="MPEG-2 Audio Layer 3">MP3</abbr> works.
- This process is therefore <em class="em">lossy</em>.
- </p>
<p class="p">
- A <abbr title="Small Language Model">SLM</abbr> is a simplified version of an <abbr title="Large Language Model">LLM</abbr> that attempts to use fewer parameters and should require far less power (wattage).
+ The most significant changes from the previous stable releases, the <code class="code">0.6.x</code> versions are:
</p>
- <p class="p">
- <a id="2025_06_26-the_lcg_ai-more" href="news/2025/2025_06_26-the_lcg_ai.html" class="content link" aria-labelledby="2025_06_26-the_lcg_ai-more 2025_06_26-the_lcg_ai-title">Continue reading…</a>
- </p>
- </div>
- </article>
- <article id="2025_04_30-fll_0_6_13_and_0_7_1_releases" class="article">
- <header class="article-header header separate">
- <h2 id="2025_04_30-fll_0_6_13_and_0_7_1_releases-title" class="article-title h h2">2025 / 04 / 30 - FLL 0.6.13 and FLL 0.7.1 Releases</h2>
- </header>
+ <ol>
+ <li>Many programs have been merged into a single program using a shared code base.</li>
+ <li>The programs now follow a new signal threading and interrupt process.</li>
+ <li>This interrupt process is extended down to all of the different level project to better allow for the use of call backs and interrupt handling.</li>
+ <li>Several of the different level projects have been flattened down to a lower level.</li>
+ <li>The memory allocation logic has been changed to utilize more general structures, reducing the need for as many delete and destroy functions.</li>
+ <li>The console handling code supports additional features for disabling and enabling as well as the ability to more easily mimic common POSIX style parameters.</li>
+ <li>More functionality is added to better facilitate writing network oriented code.</li>
+ <li>More functionality is added for process and scheduler interaction.</li>
+ <li>A new example project is provided to help make learning how to write programs using this project easier.</li>
+ <li><strong class="strong">Unicode 15.0</strong> is now supported.</li>
+ <li>Experimental support for using ZSH for many of the projects scripts.</li>
+ <li>Provide new standard structure for programs data, especially with regard to printing.</li>
+ <li>Many of the programs now follow a new structure design that separates, call backs, caches, and other data via different structures.</li>
+ <li>Many static strings are now more centrally stored and some are in an array to better allow for different written languages to more easily replace strings where possible.</li>
+ <li>The <abbr title="Featureless Settings Specification">FSS</abbr> and IKI standards and specifications now support the use of back ticks.</li>
+ <li>The <code class="code">control</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>The <code class="code">controller</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>The <code class="code">firewall</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>This has been tested to compile and run on <strong class="strong">Android</strong> (using something like <strong class="strong">Termux</strong>).</li>
+ <li>This has been tested to compile and run on the <strong class="strong">Pinephone</strong> (using <strong class="strong">PostmarketOS</strong>).</li>
+ <li>The Go programming language is now supported in the build settings files.</li>
+ <li>Introduction of the <strong class="strong">Open Standard License 1.0</strong> for the standards and the related specifications.</li>
+ <li>Add <code class="code">fll.c.tags</code> file.</li>
+ <li>Explicitly define <code class="code">IFS</code> in scripts to prevent misuse.</li>
+ <li>Add a lot of status codes for various purposes and uses.</li>
+ <li>Implement new debug printing methods in programs that prints the source code file and line number instead of just a function name.</li>
+ <li>Switch to using newer initializer style of <code class="code">{ .a = b }</code>.</li>
+ <li>Provide more build settings defaults, such as defaulting <code class="code">build_language</code> to <code class="code">c</code>.</li>
+ <li>A new level 0 project, <code class="code">f_abstruse</code>.</li>
+ <li>A new level 0 project, <code class="code">f_compare</code>.</li>
+ <li>A new level 0 project, <code class="code">f_network</code>.</li>
+ <li>A new level 0 project, <code class="code">f_parse</code>.</li>
+ <li>A new level 0 project, <code class="code">f_process</code>.</li>
+ <li>A new level 0 project, <code class="code">f_random</code>.</li>
+ <li>A new level 0 project, <code class="code">f_rip</code>.</li>
+ <li>A new level 0 project, <code class="code">f_schedule</code>.</li>
+ <li>A new level 0 project, <code class="code">f_time</code>.</li>
+ <li>A new level 1 project, <code class="code">fl_path</code> (relocated from level 2).</li>
+ <li>A new level 1 project, <code class="code">fl_status_string</code> (relocated from level 2).</li>
+ </ol>
- <div class="article-content">
- <p class="p">
- The <strong class="strong">Featureless Linux Library</strong> stable version <code class="code">0.6.13</code> and development version <code class="code">0.7.1</code> are released.
- </p>
- <p class="p">
- The stable version <code class="code">0.6.13</code> has primarily seen improvements in the <strong class="strong">IKI Read</strong> program.
- Several program parameters have had their behavior changed due to consistency problems with other programs.
- </p>
- <p class="p">
- The <code class="code">--total</code> parameter now prints the total number of <strong class="strong">IKI Variables</strong>.
- The <code class="code">--whole</code> parameter now prints the total number of lines rather than the total number of <strong class="strong">IKI Variables</strong>.
- The <code class="code">--whole</code> parameter may now be specified along with the <code class="code">--at</code> parameter.
- The <code class="code">--total</code> parameter has had several of its restrictions removed.
- The <code class="code">--substitute</code> parameter short syntax is changed to now be <code class="code">-S</code> to make the program more consistent with other programs where the <code class="code">-s</code> is the short syntax for the <code class="code">--select</code> parameter.
- The <strong class="strong">IKI Read</strong> program does not have a <code class="code">--select</code> parameter.
- The order in which <code class="code">--name</code>, <code class="code">--at</code>, and <code class="code">--line</code> parameters has been clarified.
<p class="p">
- The <strong class="strong">IKI</strong> related and <strong class="strong">Time</strong> related specifications have been updated to address concerns and points of confusion.
- Additional documentation regarding the backslashes similar to how the FSS backslashes are handled.
- The <strong class="strong">Time</strong> specification has incorrect examples that are now fixed.
- The language in the <strong class="strong">Time</strong> specification has been changed to better allow for more flexibility in its application.
- </p>
- <p class="p">
- I have found some notable bugs where the <code class="code">f_signal_close</code>, <code class="code">uid_t</code>, and <code class="code">gid_t</code> are assigning the wrong number when representing closed or unused.
- These need to be <code class="code">-1</code> rather than <code class="code">0</code>.
+ A complete log of changes can be done by comparing the <code class="code">0.6.0</code> tag to the <code class="code">0.8.0</code> tag.<br>
+ For example: <code class="code">git log --graph --decorate --pretty=oneline --abbrev-commit --abbrev=12 0.6.0...0.8.0</code>.
</p>
+
<p class="p">
- <a id="2025_04_30-fll_0_6_13_and_0_7_1_releases-more" href="news/2025/2025_04_30-fll_0_6_13_and_0_7_1_releases.html" class="content link" aria-labelledby="2025_04_30-fll_0_6_13_and_0_7_1_releases-more 2025_04_30-fll_0_6_13_and_0_7_1_releases-title">Continue reading…</a>
+ <a id="2026_01_01-fll_0_8_0_release-more" href="news/2026/2026_01_01-fll_0_8_0_release.html" class="content link" aria-labelledby="2026_01_01-fll_0_8_0_release-more 2026_01_01-fll_0_8_0_release-title">Continue reading…</a>
</p>
</div>
</article>
- <article id="2025_01_08-fll_0_7_0_release" class="article">
+ <article id="year_2025-news" class="article">
<header class="article-header header separate">
- <h2 id="2025_01_08-fll_0_7_0_release-title" class="article-title h h2">2025 / 01 / 08 - FLL 0.7.0 Release</h2>
+ <h2 id="year_2025-news-title" class="article-title h h2">Year 2025 News</h2>
</header>
<div class="article-content">
<p class="p">
- The <strong class="strong">Featureless Linux Library</strong> development version <code class="code">0.7.0</code> is released.
- </p>
- <p class="p">
- This is a development release.
- The <code class="code">0.7</code> development code has gone too long without a formal release tag.
- This development branch has seen development as far back as <em class="em">August 3, 2022</em> and much of the <code class="code">0.6</code> includes a lot of back ported code from <code class="code">0.7</code>.
- This release represents a starting point for many planned changes and updates throughout the year.
- </p>
- <p class="p">
- This development code has some design changes that makes the project a little more versatile and extensible but at a cost of slightly larger code.
- Many of the programs now have a more consistent and modular design that allows for housing multiple related projects in the same code base.
- Several of the projects have been renamed and simplified into shorter names, such as <code class="code">f_string_range_t</code> now being <code class="code">f_range_t</code>.
- A new program called <strong class="strong">EKI</strong>, also known as <strong class="strong">Extended IKI</strong>, that handles the <strong class="strong">EKI</strong> specifications is now available.
- </p>
- <p class="p">
- Not everything is implemented or complete, but this is not strictly required for a development release.
- Most of the library, and the related programs, are tested and confirmed to be working.
- Projects like <strong class="strong">Controller</strong> and <strong class="strong">Control</strong> are not yet complete.
- </p>
- <p class="p">
- <a id="2025_01_08-fll_0_7_0_release-more" href="news/2025/2025_01_08-fll_0_7_0_release.html" class="content link" aria-labelledby="2025_01_08-fll_0_7_0_release-more 2025_01_08-fll_0_7_0_release-title">Continue reading…</a>
+ The <a href="news/2025.html" class="content link">news for the year 2025</a> remains available.
</p>
</div>
</article>
<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="2024.html">
+ <link type="text/html" rel="next" href="2026.html">
</head>
<body id="kevux" class="kevux no-js news">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="News post on 2025/06/26.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Distribution, Open-Source, News, 2025">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, News, 2025">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" media="all" href="css/kevux.css">
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Kevux Systems and Software - News - 2026</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="News posts for the year 2026.">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, News, 2026">
+ <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="news/2026.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="2025.html">
+ </head>
+
+ <body id="kevux" class="kevux no-js news">
+ <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 active"><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"><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="news.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">2026 / 01 / 01</div>
+ <a href="news/2026/2026_01_01-fll_0_8_0_release.html" class="nav-text link">FLL 0.8.0 Release</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="news/2026.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="news/2026.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">Year 2026 News</h1>
+ </header>
+
+ <article id="2026_01_01-fll_0_8_0_release" class="article">
+ <header class="article-header header">
+ <h2 id="2026_01_01-fll_0_8_0_release-title" class="article-title h h2">2026 / 01 / 01 - FLL 0.8.0 Release</h2>
+ </header>
+
+ <div class="article-content">
+ <p class="p">
+ The <strong class="strong">Featureless Linux Library</strong> stable version <code class="code">0.8.0</code> is released.
+ </p>
+
+ <p class="p">
+ I'm starting the year off with the <code class="code">0.8.0</code> stable release.<br>
+ This release marks a major milestone for the <abbr title="Featureless Linux Library">FLL</abbr> project.<br>
+ Expect to see a lot more development in the programs and software that utilizes this stable release all year long.<br>
+ This release represents approximately three years of off and on programming while simultaneously using the software in its developmental state.
+ </p>
+
+ <p class="p">
+ The official release date is intended to be some time after the <abbr title="Coordinated Universal Time">UTC</abbr> (time zone 0) reaches January 1, 2026.<br>
+ This is being done explicitly because the project and its source code is available to the whole world and I am trying to make all of my times based on <abbr title="Coordinated Universal Time">UTC</abbr>.<br>
+ Following <abbr title="Coordinated Universal Time">UTC</abbr> to make released and represent dates and times makes more sense than using some local or regional time zone.
+ </p>
+
+ <p class="p">
+ The most significant changes from the previous stable releases, the <code class="code">0.6.x</code> versions are:
+ </p>
+
+ <ol>
+ <li>Many programs have been merged into a single program using a shared code base.</li>
+ <li>The programs now follow a new signal threading and interrupt process.</li>
+ <li>This interrupt process is extended down to all of the different level project to better allow for the use of call backs and interrupt handling.</li>
+ <li>Several of the different level projects have been flattened down to a lower level.</li>
+ <li>The memory allocation logic has been changed to utilize more general structures, reducing the need for as many delete and destroy functions.</li>
+ <li>The console handling code supports additional features for disabling and enabling as well as the ability to more easily mimic common POSIX style parameters.</li>
+ <li>More functionality is added to better facilitate writing network oriented code.</li>
+ <li>More functionality is added for process and scheduler interaction.</li>
+ <li>A new example project is provided to help make learning how to write programs using this project easier.</li>
+ <li><strong class="strong">Unicode 15.0</strong> is now supported.</li>
+ <li>Experimental support for using ZSH for many of the projects scripts.</li>
+ <li>Provide new standard structure for programs data, especially with regard to printing.</li>
+ <li>Many of the programs now follow a new structure design that separates, call backs, caches, and other data via different structures.</li>
+ <li>Many static strings are now more centrally stored and some are in an array to better allow for different written languages to more easily replace strings where possible.</li>
+ <li>The <abbr title="Featureless Settings Specification">FSS</abbr> and IKI standards and specifications now support the use of back ticks.</li>
+ <li>The <code class="code">control</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>The <code class="code">controller</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>The <code class="code">firewall</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>This has been tested to compile and run on <strong class="strong">Android</strong> (using something like <strong class="strong">Termux</strong>).</li>
+ <li>This has been tested to compile and run on the <strong class="strong">Pinephone</strong> (using <strong class="strong">PostmarketOS</strong>).</li>
+ <li>The Go programming language is now supported in the build settings files.</li>
+ <li>Introduction of the <strong class="strong">Open Standard License 1.0</strong> for the standards and the related specifications.</li>
+ <li>Add <code class="code">fll.c.tags</code> file.</li>
+ <li>Explicitly define <code class="code">IFS</code> in scripts to prevent misuse.</li>
+ <li>Add a lot of status codes for various purposes and uses.</li>
+ <li>Implement new debug printing methods in programs that prints the source code file and line number instead of just a function name.</li>
+ <li>Switch to using newer initializer style of <code class="code">{ .a = b }</code>.</li>
+ <li>Provide more build settings defaults, such as defaulting <code class="code">build_language</code> to <code class="code">c</code>.</li>
+ <li>A new level 0 project, <code class="code">f_abstruse</code>.</li>
+ <li>A new level 0 project, <code class="code">f_compare</code>.</li>
+ <li>A new level 0 project, <code class="code">f_network</code>.</li>
+ <li>A new level 0 project, <code class="code">f_parse</code>.</li>
+ <li>A new level 0 project, <code class="code">f_process</code>.</li>
+ <li>A new level 0 project, <code class="code">f_random</code>.</li>
+ <li>A new level 0 project, <code class="code">f_rip</code>.</li>
+ <li>A new level 0 project, <code class="code">f_schedule</code>.</li>
+ <li>A new level 0 project, <code class="code">f_time</code>.</li>
+ <li>A new level 1 project, <code class="code">fl_path</code> (relocated from level 2).</li>
+ <li>A new level 1 project, <code class="code">fl_status_string</code> (relocated from level 2).</li>
+ </ol>
+
+ <p class="p">
+ A complete log of changes can be done by comparing the <code class="code">0.6.0</code> tag to the <code class="code">0.8.0</code> tag.<br>
+ For example: <code class="code">git log --graph --decorate --pretty=oneline --abbrev-commit --abbrev=12 0.6.0...0.8.0</code>.
+ </p>
+
+ <p class="p">
+ <a id="2026_01_01-fll_0_8_0_release-more" href="news/2026/2026_01_01-fll_0_8_0_release.html" class="content link" aria-labelledby="2026_01_01-fll_0_8_0_release-more 2026_01_01-fll_0_8_0_release-title">Continue reading…</a>
+ </p>
+ </div>
+ </article>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>News - 2026/01/01 - FLL 0.8.0 Release</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="News post on 2026/01/01.">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, News, 2026">
+ <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="news/2026/2026_01_01-fll_0_8_0_release.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 news">
+ <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 active"><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"><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="news/2026.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">2026 / 01 / 01</div>
+ <div class="nav-text unlink">FLL 0.8.0 Release</div>
+ </div>
+ <div class="nav-item block">
+ <a href="news/2026/2026_01_01-fll_0_8_0_release.html#future_plans" class="nav-text link"><div>Future Plans</div></a>
+ </div>
+ <div class="nav-item block">
+ <a href="news/2026/2026_01_01-fll_0_8_0_release.html#migration_from_0_6_x" class="nav-text link"><div>Migration from 0.6.x</div></a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="news/2026/2026_01_01-fll_0_8_0_release.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="news/2026/2026_01_01-fll_0_8_0_release.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">2026 / 01 / 01 - FLL 0.8.0 Release</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">Featureless Linux Library</strong> stable version <code class="code">0.8.0</code> is released.
+ </p>
+
+ <p class="p">
+ I'm starting the year off with the <code class="code">0.8.0</code> stable release.<br>
+ This release marks a major milestone for the <abbr title="Featureless Linux Library">FLL</abbr> project.<br>
+ Expect to see a lot more development in the programs and software that utilizes this stable release all year long.<br>
+ This release represents approximately three years of off and on programming while simultaneously using the software in its developmental state.
+ </p>
+
+ <p class="p">
+ The official release date is intended to be some time after the <abbr title="Coordinated Universal Time">UTC</abbr> (time zone 0) reaches January 1, 2026.<br>
+ This is being done explicitly because the project and its source code is available to the whole world and I am trying to make all of my times based on <abbr title="Coordinated Universal Time">UTC</abbr>.<br>
+ Following <abbr title="Coordinated Universal Time">UTC</abbr> to make released and represent dates and times makes more sense than using some local or regional time zone.
+ </p>
+
+ <p class="p">
+ The most significant changes from the previous stable releases, the <code class="code">0.6.x</code> versions are:
+ </p>
+
+ <ol>
+ <li>Many programs have been merged into a single program using a shared code base.</li>
+ <li>The programs now follow a new signal threading and interrupt process.</li>
+ <li>This interrupt process is extended down to all of the different level project to better allow for the use of call backs and interrupt handling.</li>
+ <li>Several of the different level projects have been flattened down to a lower level.</li>
+ <li>The memory allocation logic has been changed to utilize more general structures, reducing the need for as many delete and destroy functions.</li>
+ <li>The console handling code supports additional features for disabling and enabling as well as the ability to more easily mimic common POSIX style parameters.</li>
+ <li>More functionality is added to better facilitate writing network oriented code.</li>
+ <li>More functionality is added for process and scheduler interaction.</li>
+ <li>A new example project is provided to help make learning how to write programs using this project easier.</li>
+ <li><strong class="strong">Unicode 15.0</strong> is now supported.</li>
+ <li>Experimental support for using ZSH for many of the projects scripts.</li>
+ <li>Provide new standard structure for programs data, especially with regard to printing.</li>
+ <li>Many of the programs now follow a new structure design that separates, call backs, caches, and other data via different structures.</li>
+ <li>Many static strings are now more centrally stored and some are in an array to better allow for different written languages to more easily replace strings where possible.</li>
+ <li>The <abbr title="Featureless Settings Specification">FSS</abbr> and IKI standards and specifications now support the use of back ticks.</li>
+ <li>The <code class="code">control</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>The <code class="code">controller</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>The <code class="code">firewall</code> program has been move out of the <abbr title="Featureless Linux Library">FLL</abbr> project and into its own separate project.</li>
+ <li>This has been tested to compile and run on <strong class="strong">Android</strong> (using something like <strong class="strong">Termux</strong>).</li>
+ <li>This has been tested to compile and run on the <strong class="strong">Pinephone</strong> (using <strong class="strong">PostmarketOS</strong>).</li>
+ <li>The Go programming language is now supported in the build settings files.</li>
+ <li>Introduction of the <strong class="strong">Open Standard License 1.0</strong> for the standards and the related specifications.</li>
+ <li>Add <code class="code">fll.c.tags</code> file.</li>
+ <li>Explicitly define <code class="code">IFS</code> in scripts to prevent misuse.</li>
+ <li>Add a lot of status codes for various purposes and uses.</li>
+ <li>Implement new debug printing methods in programs that prints the source code file and line number instead of just a function name.</li>
+ <li>Switch to using newer initializer style of <code class="code">{ .a = b }</code>.</li>
+ <li>Provide more build settings defaults, such as defaulting <code class="code">build_language</code> to <code class="code">c</code>.</li>
+ <li>A new level 0 project, <code class="code">f_abstruse</code>.</li>
+ <li>A new level 0 project, <code class="code">f_compare</code>.</li>
+ <li>A new level 0 project, <code class="code">f_network</code>.</li>
+ <li>A new level 0 project, <code class="code">f_parse</code>.</li>
+ <li>A new level 0 project, <code class="code">f_process</code>.</li>
+ <li>A new level 0 project, <code class="code">f_random</code>.</li>
+ <li>A new level 0 project, <code class="code">f_rip</code>.</li>
+ <li>A new level 0 project, <code class="code">f_schedule</code>.</li>
+ <li>A new level 0 project, <code class="code">f_time</code>.</li>
+ <li>A new level 1 project, <code class="code">fl_path</code> (relocated from level 2).</li>
+ <li>A new level 1 project, <code class="code">fl_status_string</code> (relocated from level 2).</li>
+ </ol>
+
+ <p class="p">
+ A complete log of changes can be done by comparing the <code class="code">0.6.0</code> tag to the <code class="code">0.8.0</code> tag.<br>
+ For example: <code class="code">git log --graph --decorate --pretty=oneline --abbrev-commit --abbrev=12 0.6.0...0.8.0</code>.
+ </p>
+
+ <section id="migration_from_0_6_x" class="section">
+ <header class="section-header header separate">
+ <h2 id="future_plans-title" class="section-title h h2">Migration from 0.6.x</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ The migration from the previous <code class="code">0.6</code> stable release series to the <code class="code">0.8</code> stable release series is straight forward.<br>
+ Just build and install the new releases.
+ </p>
+
+ <p class="p">
+ There may be problems when using older versions of the <code class="code">0.6</code> <strong class="strong">Featureless Make</strong> when compiling the new <code class="code">0.8</code> stable release.<br>
+ If this happens then just use the <code class="code">bootstrap.sh</code> script to build and install the <abbr title="Featureless Linux Library">FLL</abbr> and the respective programs.
+ </p>
+ </div>
+ </section>
+
+ <section id="future_plans" class="section">
+ <header class="section-header header separate">
+ <h2 id="future_plans-title" class="section-title h h2">Future Plans</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ The stable <code class="code">0.8</code> release sets the foundation that is needed to begin focusing on writing various programs and functionality.<br>
+ There is expected to be a lot of work on existing programs like the <code class="code">controller</code> program.<br>
+ New programs, like <code class="code">furl</code>, are expected to be developed.<br>
+ Stale programs, like <code class="code">firewall</code>, are expected to be updated and refreshed to work with the latest firewall networking functionality.<br>
+ There is expected to be a notable amount of networking related programs and functionality to be written.<br>
+ The networking functionality shall be implemented in individual programs but might eventually get merged into the <code class="code">0.9</code> development branch.
+ </p>
+ </div>
+ </section>
+
+ <section id="kevux_website" class="section">
+ <header class="section-header header separate">
+ <h2 id="future_plans-title" class="section-title h h2">Kevux Website</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ Along with this release comes some changes to the Kevux website.
+ </p>
+
+ <p class="p">
+ The <em class="em">Projects</em> and the <em class="em">Documentation</em> pages have been re-organized.<br>
+ Many of the programs are moved out of the <em class="em">Documentation</em> and into the <em class="em">Projects</em> pages.<br>
+ The top-level of the <em class="em">Projects</em> pages now has only simple listing of the programs and their pages.
+ </p>
+
+ <p class="p">
+ There may be future work in the <em class="em">Projects</em> and the <em class="em">Documentation</em> pages, but for now many of the new pages are sparse.
+ </p>
+ </div>
+ </section>
+
+ <p class="p">
+ <strong class="strong">Kevin Day</strong>
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<meta name="description" content="Kevux managed projects such as the Controller program, the Byte Dump program, and the Featureless Make program.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Make, Fake, Controller, UTF-8, Open-Source">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Make, Fake, Controller, 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">
<nav id="kevux-document-nav" class="nav-menu">
<div class="nav-item block">
<div class="nav-text notice">Projects</div>
+ <a href="projects.html#listing" class="nav-text link">Listing</a>
</div>
<div class="nav-item block">
- <a href="projects.html#byte_dump" class="nav-text link">Byte Dump</a>
+ <div class="nav-text notice">FLL</div>
+ <a href="projects/byte_dump.html" class="nav-text link">Byte Dump</a>
</div>
<div class="nav-item block">
- <a href="projects.html#control" class="nav-text link">Control</a>
+ <a href="projects/control.html" class="nav-text link">Control</a>
</div>
<div class="nav-item block">
- <a href="projects.html#controller" class="nav-text link">Controller</a>
+ <a href="projects/controller.html" class="nav-text link">Controller</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fake" class="nav-text link">Featureless Make</a>
+ <a href="projects/fake.html" class="nav-text link">Featureless Make</a>
</div>
<div class="nav-item block">
- <a href="projects.html#firewall" class="nav-text link">Firewall</a>
+ <a href="projects/fss_identify.html" class="nav-text link">FSS Identify</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_basic_list_read" class="nav-text link">FSS Basic List Read</a>
+ <a href="projects/fss_read.html" class="nav-text link">FSS Read</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_basic_list_write" class="nav-text link">FSS Basic List Write</a>
+ <a href="projects/fss_write.html" class="nav-text link">FSS Write</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_basic_read" class="nav-text link">FSS Basic Read</a>
+ <a href="projects/iki_read.html" class="nav-text link">IKI Read</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_basic_write" class="nav-text link">FSS Basic Write</a>
+ <a href="projects/iki_write.html" class="nav-text link">IKI Write</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_embedded_list_read" class="nav-text link">FSS Embedded List Read</a>
+ <a href="projects/status_code.html" class="nav-text link">Status Code</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_embedded_list_write" class="nav-text link">FSS Embedded List Write</a>
+ <a href="projects/utf8.html" class="nav-text link">UTF8</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_extended_list_read" class="nav-text link">FSS Extended List Read</a>
+ <div class="nav-text notice">Kevux</div>
+ <a href="projects/firewall.html" class="nav-text link">Firewall</a>
</div>
<div class="nav-item block">
- <a href="projects.html#fss_extended_list_write" class="nav-text link">FSS Extended List Write</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#fss_extended_read" class="nav-text link">FSS Extended Read</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#fss_extended_write" class="nav-text link">FSS Extended Write</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#fss_identify" class="nav-text link">FSS Identify</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#fss_payload_read" class="nav-text link">FSS Payload Read</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#fss_payload_write" class="nav-text link">FSS Payload Write</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#fss_status_code" class="nav-text link">FSS Status Code</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#iki_read" class="nav-text link">IKI Read</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#iki_write" class="nav-text link">IKI Write</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#status_code" class="nav-text link">Status Code</a>
- </div>
- <div class="nav-item block">
- <a href="projects.html#utf8" class="nav-text link">UTF8</a>
+ <a href="projects/tools.html" class="nav-text link">Tools</a>
</div>
<div class="nav-item block ellipses">
<a href="projects.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
<h1 class="section-title h h1">Projects</h1>
</header>
- <article id="programs" class="article">
- <header class="article-header header">
- <h2 class="article-title h h2">Programs</h2>
- </header>
- <div class="article-content">
- <p class="p">
- The Featureless Linux Library is a major project and has several sub-parts, including several programs. The <abbr title="Featureless Linux Library">FLL</abbr> is broken up into multiple sub-projects that are libraries themselves or programs. This page describes those programs from <abbr title="Featureless Linux Library">FLL</abbr> as well as any other programs and projects associated with Kevux Systems or Kevin Day.
- </p>
- <p class="p">
- Of particular note is that most, if not all, of the Kevux Systems programs are written to provide an <abbr title="Application Programming Interface">API</abbr> (and its respective <abbr title="Application Binary Interface">ABI</abbr>). This allows the programs themselves to be used as a library.
- </p>
- <p class="p">
- The programs themselves follow <abbr title="Featureless Linux Library">FLL</abbr> design principles on making the interface human-friendly. Software should be a tool for humans, and not a tool for machines.
- </p>
- </div>
- </article>
-
- <article id="byte_dump" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">Byte Dump</h2>
- </header>
- <div class="article-content">
- <p class="p">
- This tool is a nifty way to get a <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> friendly <code class="code">hexdump</code> alternative.<br>
- The output is intended to honor some of the feel of hexdump but do so in an <abbr title="Featureless Linux Library">FLL</abbr> way.
- </p>
- </div>
- </article>
-
- <article id="control" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">Control</h2>
- </header>
- <div class="article-content">
- <p class="p">
- This project is not complete and development is planned for the <abbr title="Featureless Linux Library">FLL</abbr> 0.7 development series.<br>
- <br>
- The goal of this is to communicate with the "Controller" program, such as starting or stopping services.
- </p>
- </div>
- </article>
-
- <article id="controller" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">Controller</h2>
- </header>
- <div class="article-content">
- <p class="p">
- This project is not complete and development is planned for the <abbr title="Featureless Linux Library">FLL</abbr> 0.7 development series.
- </p>
- <p class="p">
- The goal of this is to provide task and service management similar to sysvinit, initng, and systemd.<br>
- This is designed to be used for booting the system as if it were <code class="code">/sbin/init</code>.
- </p>
- <p class="p">
- This should be controllable from user-space via the "Control" program.
- </p>
- </div>
- </article>
-
- <article id="fake" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">Featureless Make</h2>
- </header>
- <div class="article-content">
- <p class="p">
- The Featureless Make is the original program and goal of the <abbr title="Featureless Linux Library">FLL</abbr>.<br>
- The GNU Make, Autoconf, and all those build processes are unnecessarily complex.
- </p>
- <p class="p">
- A major problem with these build systems is that they try to manage installation as well as compilation.<br>
- A build system should be just that a build system.<br>
- Trying to handle how the built package gets installed should be done by system administrators or distributors.<br>
- By avoiding this, the code becomes simpler, more "featureless", easier to maintain, and easier to hack.
- </p>
- <p class="p">
- The Featureless Make, also called Fake, provides two primary ways to compile C, C++, and possibly other compiled languages:
- </p>
- <ul>
- <li>Using the "build" command.</li>
- <li>Using the "make" command.</li>
- </ul>
- <p class="p">
- The build command is as simple as it can be and follows a Featureless Settings Specification (FSS).<br>
- The make command (and its respective fakefile) provides a more advanced interface for handling complex build processes or compiling languages other than C/C++.
- </p>
- <p class="p">
- The build command (and subsequently the make command) currently provide some hard coded program settings, such as the indexer "ar" runs ar rcs.<br>
- Eventually such things will be expanded into an FSS setting and made customizable.
- </p>
- <p class="p">
- Both the build and make commands support a small subset of make and autoconf functionality to make transitioning easier or make it easy to work alongside make and autoconf.
- </p>
- <p class="p">
- To help with understanding and using the Featureless Make program, fully functional example build settings and fakefiles are created for the program bzip (specifically version 1.0.8):
- </p>
- <ul>
- <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/fakefile" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/fakefile</a></li>
- <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2</a></li>
- <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2recover" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2recover</a></li>
- </ul>
- <p class="p">
- There is also a fakefile pre-configured to run GNU Make within itself to compile the Linux kernel fom source:
- </p>
- <ul>
- <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/build/fakefile-example-linux_using_make" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/build/fakefile-example-linux_using_make</a></li>
- </ul>
- <p class="p">
- Bzip2 may be found here:
- </p>
- <ul>
- <li><a href="https://sourceware.org/bzip2/" class="link external">https://sourceware.org/bzip2/</a></li>
- </ul>
- </div>
- </article>
-
- <article id="firewall" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">Firewall</h2>
- </header>
- <div class="article-content">
- <p class="p">
- This is one of the earliest proof of concept and functional example of the FLL library.<br>
- Now it is currently outdated, but it still remains operational as an iptables wrapper.<br>
- This program is actively used on the Turtle Kevux distribution.<br>
- This requires iptables to be installed and executable.
- </p>
- </div>
- </article>
-
- <article id="fss_identify" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Identify</h2>
- </header>
- <div class="article-content">
- <p class="p">
- This is a program reading a file and determining what Featureless Settings Specification.<br>
- This only detects files that provide an <abbr title="Featureless Settings Specification">FSS</abbr> header.
- </p>
- </div>
- </article>
-
- <article id="fss_basic_read" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Basic Read</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_basic_write" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Basic Write</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_basic_list_read" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Basic List Read</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_basic_list_write" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Basic List Write</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_embedded_list_read" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Embedded List Read</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_embedded_list_write" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Embedded List Write</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_extended_read" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Extended Read</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_extended_write" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Extended Write</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_extended_list_read" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Extended List Read</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_extended_list_write" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Extended List Write</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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>
-
- <article id="fss_payload_read" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Payload Read</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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 <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>
- </article>
-
- <article id="fss_payload_write" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Payload Write</h2>
- </header>
- <div class="article-content">
- <p class="p">
- 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 <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>
- </article>
-
- <article id="fss_status_code" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">FSS Status Code</h2>
- </header>
- <div class="article-content">
- <p class="p">
- This program is designed to interpret status codes returned by any <abbr title="Featureless Settings Specification">FSS</abbr> program.<br>
- The status codes are converted to or from a code and a label.
- </p>
- <p class="p">
- This program handles more status codes that the <code class="code">status_code</code> program.
- </p>
- </div>
- </article>
-
- <article id="status_code" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">Status Code</h2>
- </header>
- <div class="article-content">
- <p class="p">
- This program is designed to interpret status codes returned by any <abbr title="Featureless Linux Libray">FLL</abbr> based program.<br>
- The status codes are converted to or from a code and a label.
- </p>
- <p class="p">
- This program specifically handles only the core status codes provided by the <abbr title="Featureless Linux Library">FLL</abbr>.<br>
- Other programs that utilize custom status codes should provide their own implementation of this program, such as is done with the <strong class="strong">FSS Status Code</strong> program.
- </p>
- </div>
- </article>
-
- <article id="iki_read" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">IKI Read</h2>
- </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 <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>
- The IKI could be used for anything from e-mails and text-messages to word-processors.<br>
- The goal with IKI is to be very easily readably by a human, such as: <code class="code">iki:"example"</code> or <code class="code">url:"https://sourceforge.net/projects/fll/"</code>.
- </p>
- <p class="p">
- This program is a swiss army knife for reading files that contain IKI syntax.
- </p>
- </div>
- </article>
-
- <article id="iki_write" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">IKI Write</h2>
- </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 <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>
- The IKI could be used for anything from e-mails and text-messages to word-processors.<br>
- The goal with IKI is to be very easily readably by a human, such as: <code class="code">iki:"example"</code> or <code class="code">url:"https://sourceforge.net/projects/fll/"</code>.
- </p>
- <p class="p">
- This program is a swiss army knife for writing files that contain IKI syntax.
- </p>
- </div>
- </article>
-
- <article id="utf8" class="article">
- <header class="article-header header separate">
- <h2 class="article-title h h2">UTF8</h2>
- </header>
- <div class="article-content">
- <p class="p">
- A tool to convert one or more <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> characters from the codepoint representation to a binary representation and back.
- </p>
- <p class="p">
- This program can convert complete files into a text file of <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> bytecode values.<br>
- This program can convert complete files into a text file of space separated codepoint values.
- </p>
- </div>
- </article>
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">Featureless Linux Library</strong> (FLL) is a major project and has several sub-parts, including several programs.<br>
+ The <abbr title="Featureless Linux Library">FLL</abbr> is broken up into multiple sub-projects that are libraries themselves or programs.<br>
+ All of the programs also operate as a library, unless compiled in special ways, such as with <em class="em">stand alone</em> builds.
+ </p>
+
+ <p class="p">
+ This page describes those programs from <abbr title="Featureless Linux Library">FLL</abbr> as well as any other programs and projects associated with Kevux Systems or Kevin Day.
+ </p>
+
+ <p class="p">
+ Of particular note is that most, if not all, of the Kevux Systems programs are written to provide an <abbr title="Application Programming Interface">API</abbr> (and its respective <abbr title="Application Binary Interface">ABI</abbr>).<br>
+ This allows the programs themselves to be used as a library.
+ </p>
+
+ <p class="p">
+ The programs themselves follow <abbr title="Featureless Linux Library">FLL</abbr> design principles on making the interface human-friendly and human-first.<br>
+ Software should be a tool for humans, and not a tool for machines.
+ </p>
+
+ <section id="listing" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Listing</h2>
+ </header>
+
+ <div class="section-content">
+ <p class="p">
+ The following are all of the projects and their respective documentation.
+ </p>
+
+ <div class="center">
+ <table class="table context-parameters design-1">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Project</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/byte_dump.html" class="link">Byte Dump</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides the <strong class="strong">Byte Dump</strong> program.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">Byte Dump</strong> program provides a way to get a <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> friendly <code class="code">hexdump</code> alternative.
+ </p>
+
+ <p class="p">
+ The output is intended to honor some of the feel of <code class="code">hexdump</code>, but in an <abbr title="Featureless Linux Library">FLL</abbr> way.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/control.html" class="link">Control</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides the <strong class="strong">Control</strong> program.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">Control</strong> program provides a to communicate with the <code class="code">controller</code> program, such as starting or stopping services.
+ </p>
+
+ <p class="p">
+ This project is not complete and development is on going for the <abbr title="Featureless Linux Library">FLL</abbr> <code class="code">0.8</code> stable series.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/controller.html" class="link">Controller</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides the <strong class="strong">Controller</strong> and <strong class="strong">Init</strong> programs.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">Controller</strong> program provides a way to manage programs, scripts, tasks, and services.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">Init</strong> program provides similart functionality to the <code class="code">sysvinit</code>, <code class="code">initng</code>, and <code class="code">systemd</code> programs.<br>
+ This <strong class="strong">Init</strong> program is designed to be used for booting the system as if it were <code class="code">/sbin/init</code>.
+ </p>
+
+ <p class="p">
+ Both the <strong class="strong">Controller</strong> and <strong class="strong">Init</strong> programs that are operating as some sort of service should be controllable from via the <code class="code">control</code> program.
+ </p>
+
+ <p class="p">
+ This project is not complete and development is on going for the <abbr title="Featureless Linux Library">FLL</abbr> <code class="code">0.8</code> stable series.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/fake.html" class="link">Featureless Make</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This is the original project and goal of the <abbr title="Featureless Linux Library">FLL</abbr>.<br>
+ The GNU Make, Autoconf, and all those build processes are unnecessarily complex.
+ </p>
+
+ <p class="p">
+ A major problem with these other build systems is that they try to manage installation as well as compilation.<br>
+ A build system should be just that, a build system.<br>
+ Trying to handle how the built package gets installed should be done by system administrators or distributors.<br>
+ By avoiding this, the code becomes simpler, more "featureless", easier to maintain, easier to hack, and easier to keep using over the years.
+ </p>
+
+ <p class="p">
+ Projects should only describe what <abbr title="Application Programming Interface">API</abbr> in which they are compatible with and should not be tied down to any specific project or version.
+ </p>
+
+ <p class="p">
+ This project provides the <strong class="strong">Featureless Make</strong> program.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">Featureless Make</strong> is the program called <code class="code">fake</code>.
+ This program provides two primary ways to compile C, C++, Go, and possibly other languages:
+ </p>
+
+ <ul>
+ <li>Using the <code class="code">build</code> command.</li>
+ <li>Using the <code class="code">make</code> command.</li>
+ </ul>
+
+ <p class="p">
+ The <code class="code">build</code> command is as simple as it can be and follows a Featureless Settings Specification (FSS).<br>
+ The <code class="code">make</code> command (and its respective <code class="code">fakefile</code>) provides a more advanced interface for handling complex build processes or compiling languages other than C/C++.
+ </p>
+
+ <p class="p">
+ The <code class="code">build</code> command (and subsequently the make command) currently provide some hard coded program settings, such as the indexer <code class="code">ar</code> runs <code class="code">ar rcs</code>.<br>
+ Eventually such things will be expanded into an FSS setting and made customizable.
+ </p>
+
+ <p class="p">
+ Both the <code class="code">build</code> and <code class="code">make</code> commands support a small subset of <code class="code">make</code> and <code class="code">autoconf</code> functionality to make transitioning easier or make it easy to work alongside <code class="code">make</code> and <code class="code">autoconf</code>.
+ </p>
+
+ <p class="p">
+ To help with understanding and using the <strong code="strong">Featureless Make</strong> program, fully functional example build <code class="code">settings</code> and <code class="code">fakefile</code> are created for the program <code class="code">bzip</code> (specifically version <code class="code">1.0.8</code>):
+ </p>
+
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/fakefile" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/fakefile</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2</a></li>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2recover" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/projects/bzip2/1.0.8/settings-bzip2recover</a></li>
+ </ul>
+
+ <p class="p">
+ There is also a <code class="code">fakefile</code> pre-configured to run GNU Make within itself to compile the Linux kernel fom source:
+ </p>
+
+ <ul>
+ <li><a href="https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/build/fakefile-example-linux_using_make" class="link external">https://sourceforge.net/p/fll/git/ci/development/tree/level_3/fake/data/build/fakefile-example-linux_using_make</a></li>
+ </ul>
+
+ <p class="p">
+ The Bzip2 source code may be found here:
+ </p>
+
+ <ul>
+ <li><a href="https://sourceware.org/bzip2/" class="link external">https://sourceware.org/bzip2/</a></li>
+ </ul>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/fss_identify.html" class="link">FSS Identify</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides the <strong class="strong">FSS Identify</strong> program.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">FSS Identify</strong> program is designed to read a file and determine what Featureless Settings Specification (FSS) is being used by that file.<br>
+ </p>
+
+ <p class="p">
+ The <code class="code">fss_identify</code> program only detects files that provide an <abbr title="Featureless Settings Specification">FSS</abbr> header.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/fss_read.html" class="link">FSS Read</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides several <strong class="strong">FSS Read</strong> programs.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">FSS Read</strong> programs each suppoert various <abbr title="Featureless Settings Specification">FSS</abbr>:
+ </p>
+
+ <ol>
+ <li><code class="code">FSS-0000 (Basic)</code></li>
+ <li><code class="code">FSS-0001 (Extended)</code></li>
+ <li><code class="code">FSS-0002 (Basic List)</code></li>
+ <li><code class="code">FSS-0003 (Extended List)</code></li>
+ <li><code class="code">FSS-0008 (Embedded List)</code></li>
+ <li><code class="code">FSS-000E (Payload)</code></li>
+ </ol>
+
+ <p class="p">
+ This performs read operations related to the mentioned standards.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/fss_write.html" class="link">FSS Write</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides several <strong class="strong">FSS Write</strong> programs.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">FSS Write</strong> programs each support various <abbr title="Featureless Settings Specification">FSS</abbr>:
+ </p>
+
+ <ol>
+ <li><code class="code">FSS-0000 (Basic)</code></li>
+ <li><code class="code">FSS-0001 (Extended)</code></li>
+ <li><code class="code">FSS-0002 (Basic List)</code></li>
+ <li><code class="code">FSS-0003 (Extended List)</code></li>
+ <li><code class="code">FSS-0008 (Embedded List)</code></li>
+ <li><code class="code">FSS-000E (Payload)</code></li>
+ </ol>
+
+ <p class="p">
+ This performs write operations related to the mentioned standards.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/iki_read.html" class="link">IKI Read</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides <strong class="strong">EKI Read</strong> and <strong class="strong">IKI Read</strong> programs.
+ </p>
+
+ <p class="p">
+ These <strong class="strong">EKI Read</strong> and <strong class="strong">IKI Read</strong> programs support various standards:
+ </p>
+
+ <ol>
+ <li><code class="code">IKI-0000 (Unrestricted)</code></li>
+ <li><code class="code">EKI-0000 (Unrestricted)</code></li>
+ </ol>
+
+ <p class="p">
+ This performs read operations related to the mentioned standards.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">IKI</strong> and <strong class="strong">EKI</strong> settings specifications are simpler than the common Wiki standards.<br>
+ These can be used for anything from e-mails and text-messages to word-processors.<br>
+ The goal with <strong class="strong">IKI</strong> is to be very easily readably by a human, such as: <code class="code">iki:"example"</code> or <code class="code">url:"https://sourceforge.net/projects/fll/"</code>.
+ </p>
+
+ <p class="p">
+ The EKI settings specification, also known as Extended IKI settings specification, is a variation of the IKI format that supports multiple objects.<br>
+ The goal with <strong class="strong">EKI</strong> is to allow for multiple objects to be associated with one value, such as: <code class="code">eki:bold:"example"</code> or <code class="code">external:url:"https://sourceforge.net/projects/fll/"</code>.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/iki_write.html" class="link">IKI Write</a></strong></td>
+ <td class="column">
+ This project provides <strong class="strong">EKI Write</strong> and <strong class="strong">IKI Write</strong> programs.
+ </p>
+
+ <p class="p">
+ These <strong class="strong">EKI Write</strong> and <strong class="strong">IKI Write</strong> programs support various standards:
+ </p>
+
+ <ol>
+ <li><code class="code">IKI-0000 (Unrestricted)</code></li>
+ <li><code class="code">EKI-0000 (Unrestricted)</code></li>
+ </ol>
+
+ <p class="p">
+ This performs write operations related to the mentioned standards.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">IKI</strong> and <strong class="strong">EKI</strong> standards are simpler than the common Wiki standards.<br>
+ These can be used for anything, from text-messages to word-processors.<br>
+ The goal of these standards is to be very easily readably by a human, such as: <code class="code">iki:"example"</code> or <code class="code">url:"https://sourceforge.net/projects/fll/"</code>.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">EKI</strong> standard, also known as <strong class="strong">Extended IKI</strong>, is a variation of the <strong class="strong">IKI</strong> format that supports multiple objects.<br>
+ The goal with <strong class="strong">EKI</strong> is to allow for multiple objects to be associated with one value, such as: <code class="code">eki:bold:"example"</code> or <code class="code">external:url:"https://sourceforge.net/projects/fll/"</code>.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/firewall.html" class="link">(Kevux) Firewall</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides the <strong class="strong">Firewall</strong> program.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">Firewall</strong> program is one of the earliest proof of concepts and functional examples of the <abbr title="Featureless Linux Library">FLL</abbr>.<br>
+ Now this program is currently outdated, but it still remains operational as an <code class="code">iptables</code> wrapper.<br>
+ This program is actively used on the <strong class="strong">Turtle Kevux</strong> distribution.
+ </p>
+ <p class="p">
+ This requires <code class="code">iptables</code> to be installed and executable.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/tools.html" class="link">(Kevux) Tools</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides a suite of various programs for operating a Kevux distribution, such as the <strong class="strong">Turtle Kevux</strong> distribution.
+ </p>
+
+ <p class="p">
+ Some of these tools might replace existing common ones, like the <code class="code">rm</code> program.<br>
+ Other tools are for testing out functionality and design, such as the <code class="code">tacocat</code> program.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/status_code.html" class="link">Status Code</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides the <strong class="strong">FSS Status Code</strong> and the <strong class="strong">Status Code</strong> programs.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">Status Code</strong> program is designed to interpret status codes returned by any <abbr title="Featureless Linux Libray">FLL</abbr> based program and specifically handles only core status codes.<br>
+ The status codes are converted to or from a code and a label.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">FSS Status Code</strong> program is designed to interpret status codes returned by any <abbr title="Featureless Linux Libray">FLL</abbr> based program alond with the <abbr title="Featureless Settings Specification">FSS</abbr> specific status codes.
+ </p>
+
+ <p class="p">
+ Other programs that utilize custom status codes should provide their own implementation of this program, such as is done with the <code class="code">fss_status_code</code> program.
+ </p>
+ </td>
+ </tr>
+ <tr class="row">
+ <td class="column"><strong class="strong"><a href="projects/utf8.html" class="link">UTF8</a></strong></td>
+ <td class="column">
+ <p class="p">
+ This project provides the <strong class="strong">UTF8</strong> program.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">UTF8</strong> program is a tool to convert one or more <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> characters from the codepoint representation to a binary representation and back.
+ </p>
+
+ <p class="p">
+ This program can convert complete files into a text file of <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> bytecode values.<br>
+ This program can convert complete files into a text file of space separated codepoint values.
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </section>
+ </div>
</main>
</div>
</div>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - Byte Dump</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Byte Dump project.">
+ <meta name="keywords" content="Byte Dump, Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/byte_dump.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">Byte Dump</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/byte_dump/byte_dump.html" class="nav-text link">byte_dump</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/byte_dump.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/byte_dump.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">Project: Byte Dump</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">Byte Dump</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/byte_dump/byte_dump.html" class="link"><code class="code">byte_dump</code></a></div>
+ <ol>
+ <li><a href="projects/byte_dump/byte_dump.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/byte_dump/byte_dump.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/byte_dump/byte_dump/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - Byte Dump</title>
- <base href="../">
+ <base href="../../">
<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, Byte Dump, Open-Source">
+ <meta name="description" content="The byte_dump program documentation.">
+ <meta name="keywords" content="Byte Dump, Documentation, Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
<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 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.html">
+ <link rel="canonical" href="projects/byte_dump/byte_dump.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 documentation">
+ <body id="kevux" class="kevux no-js program">
<div role="banner" class="header-block">
<header class="header-section header">
<div class="header-site">Kevux Systems and Software</div>
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/byte_dump.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/byte_dump/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>
+ <a href="projects/byte_dump/byte_dump.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/byte_dump/byte_dump/specifications.html" class="nav-text link">Byte Dump</a>
</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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/byte_dump.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/byte_dump/byte_dump.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/byte_dump/byte_dump.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 Documentation</h1>
+ <h1 class="section-title h h1">Program: byte_dump Documentation</h1>
</header>
<div class="main-content">
<p class="p">
The <strong class="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 class="strong">hexdump</strong> program and provides similar functionality. However, the <strong class="strong">byte_dump</strong> program is not intended to be a complete replacemenet. Unlike the <strong class="strong">hexdump</strong> program, the <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
When using the <code class="code">--text</code> option, some <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> characters may be replaced by your instance and cause display alignment issues.
</p>
+
<p class="p">
Special <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> characters and non-spacing <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> characters may be replaced with a space (or a placeholder when the <code class="code">--placeholder</code> option is used).
</p>
+
<p class="p">
<abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> "Combining" characters might have a space appended to allow a proper display but this may cause copy and paste issues.
</p>
+
<p class="p">
When --last is used, any <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> sequences will still be printed in full should any part is found within the requested range.
</p>
+
<p class="p">
When using the <code class="code">--unicode</code> option, invalid Unicode will fallback to being displayed using one of the other modes.
</p>
<head>
<title>Documentation - Byte Dump - Specifications</title>
- <base href="../../">
+ <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="description" content="The byte_dump program specifications.">
+ <meta name="keywords" content="Byte Dump, Documentation, Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project, 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 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 rel="canonical" href="projects/byte_dump/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/byte_dump/byte_dump.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>
+ <a href="projects/byte_dump/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>
+ <a href="projects/byte_dump/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>
+ <a href="projects/byte_dump/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 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>
+ <a href="projects/byte_dump/byte_dump/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/byte_dump/byte_dump/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.<br>
The <strong class="strong">Byte Dump</strong> does not directly use or provide any of these specifications.
</p>
</div>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - Control</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Control project.">
+ <meta name="keywords" content="Control, Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/control.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">Control</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/control/control.html" class="nav-text link">control</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/control.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/control.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">Project: Control</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">Control</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/control/control.html" class="link"><code class="code">control</code></a></div>
+ <ol>
+ <li><a href="projects/control/control.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/control/control.html#parameters-program" class="link">Program Parameters</a></li>
+ <li>
+ <div><a href="projects/control/control/specifications.html" class="link">Specifications</a></div>
+ <ol type="a">
+ <li><a href="projects/control/control/specifications/packet_request.html" class="link">Packet Request</a></li>
+ <li><a href="projects/control/control/specifications/packet_response.html" class="link">Packet Response</a></li>
+ <li><a href="projects/control/control/specifications/settings.html" class="link">Settings</a></li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - Control</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/control/control.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 documentation">
+ <body id="kevux" class="kevux no-js program">
<div role="banner" class="header-block">
<header class="header-section header">
<div class="header-site">Kevux Systems and Software</div>
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/control.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/control/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>
+ <a href="projects/control/control.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/control.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/control/control.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/control/control.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="strong">control</strong> program is a tool for sending commands to the <strong class="strong">controller</strong> program.
</p>
+
<p class="p">
This tools is currently incomplete and is not guaranteed to work with the <strong class="strong">controller</strong> program. Further development will be made on this once the <strong class="strong">controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
</p>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
When the <code class="code">--socket</code> parameter represents a directory path then the file name is generated from either the <code class="code">--name</code> parameter or from the control settings file.
</p>
+
<p class="p">
A rule action allows for either the full rule path, such as '<code class="code">boot/root</code>' as a single parameter or two parameters with the first representing the rule directory path 'boot' and the second representing the rule base name '<code class="code">root</code>'.
</p>
+
<p class="p">
The <code class="code">--return</code> parameter is intended to be used for scripting and is of the form "<code class="code">response [type] [action] [status]</code>".
</p>
+
<p class="p">
- Be sure to use the <code class="code">++quiet</code> parameter to suppress output when using this in scripting.
+ Be sure to use the <code class="code">++quiet</code> parameter to suppress output when using this in scripting.<br>
No response is returned on program errors, especially those errors that prevent communicating to the controller.
</p>
</div>
<head>
<title>Documentation - Control - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/control/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/control/control.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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/control/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/control/control/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="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 class="strong">Control</strong> defines the following specifications:
</p>
+
<ul>
- <li><a href="documentation/control/specifications/settings.html" class="link">Settings</a></li>
+ <li><a href="projects/control/specifications/settings.html" class="link">Settings</a></li>
</ul>
</div>
</main>
<head>
<title>Documentation - Control - Specification - Packet Request</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/control/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/control/control/specifications.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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/control.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/control/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>
+ <a href="projects/control/control/specifications/settings.html" class="nav-text link">Settings</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Packet Request</div>
</div>
<div class="nav-item block">
- <a href="documentation/control/specifications/packet_response.html" class="nav-text link">Packet Response</a>
+ <a href="projects/control/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>
+ <a href="projects/control/control/specifications/packet_request.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/control/control/specifications/packet_request.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<div class="main-content">
<p class="p">
- The <strong class="strong">Control</strong> follows a <em class="em">Packet Request Specification</em>.
- This specification is incomplete at this time as the functionality is not yet written.
+ The <strong class="strong">Control</strong> follows a <em class="em">Packet Request Specification</em>.<br>
+ This specification is incomplete at this time as the functionality is not yet written.<br>
This specification is intended to be shared with the <strong class="strong">Controller</strong> program.
</p>
</div>
<div class="section-content">
<p class="p">
- The <strong class="strong">Control</strong> program sends packets and receives packet responses from the <strong class="strong">Controller</strong> program over the <strong class="strong">Controller</strong> program's control socket.
+ The <strong class="strong">Control</strong> program sends packets and receives packet responses from the <strong class="strong">Controller</strong> program over the <strong class="strong">Controller</strong> program's control socket.<br>
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 class="strong">Controller</strong> program to perform a requested action.
</p>
+
<p class="p">
- The communications to/from the <strong class="strong">Controller</strong> program utilize the <code class="code">FSS-000F (Simple Packet)</code>.
+ The communications to/from the <strong class="strong">Controller</strong> program utilize the <code class="code">FSS-000F (Simple Packet)</code>.<br>
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 class="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 class="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 class="em">Payload Object</em>" refers to the Object within the Payload Packet (ie: <code class="code">payload:</code>).
+ The Payload contains within it a Header and a Payload.<br>
+ 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.<br>
+ To avoid this, henceforth "<em class="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>.<br>
+ The "<em class="em">Payload Header</em>" refers to either the Object (<code class="code">header:</code>) or Content within the Payload Packet representing the header.<br>
+ The "<em class="em">Payload Object</em>" refers to the Object within the Payload Packet (ie: <code class="code">payload:</code>).<br>
The "<em class="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 <code class="code">FSS-000E (Payload)</code> is very flexible in what it allows within the Header of the Payload Packet.<br>
The <strong class="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 class="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>.
+ For example, given the command: <code class="code">control start service sshd in 5 minutes</code>.<br>
The <code class="code">action</code> Object would be <code class="code">start service sshd in 5 minutes</code>.
</p>
</div>
<head>
<title>Documentation - Control - Specification - Packet Response</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/control/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/control/control/specifications.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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/control.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/control/specifications/packet_request.html" class="nav-text link">Packet Request</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Packet Response</div>
<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>
+ <a href="projects/control/control/specifications/packet_response.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/control/control/specifications/packet_response.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<div class="main-content">
<p class="p">
- The <strong class="strong">Control</strong> follows a <em class="em">Packet Response Specification</em>.
- This specification is incomplete at this time as the functionality is not yet written.
+ The <strong class="strong">Control</strong> follows a <em class="em">Packet Response Specification</em>.<br>
+ This specification is incomplete at this time as the functionality is not yet written.<br>
This specification is intended to be shared with the <strong class="strong">Controller</strong> program.
</p>
</div>
<div class="section-content">
<p class="p">
- The <strong class="strong">Control</strong> program sends packets and receives packet responses from the <strong class="strong">Controller</strong> program over the <strong class="strong">Controller</strong> program's control socket.
+ The <strong class="strong">Control</strong> program sends packets and receives packet responses from the <strong class="strong">Controller</strong> program over the <strong class="strong">Controller</strong> program's control socket.<br>
This documentation describes the expected response packets and how these response packets are handled.
</p>
+
<p class="p">
- The communications to/from the <strong class="strong">Controller</strong> program utilize the <code class="code">FSS-000F (Simple Packet)</code>.
+ The communications to/from the <strong class="strong">Controller</strong> program utilize the <code class="code">FSS-000F (Simple Packet)</code>.<br>
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 class="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 class="em">Payload Object</em>" refers to the Object within the Payload Packet (ie: <code class="code">payload:</code>).
+ The Payload contains within it a Header and a Payload.<br>
+ 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.<br>
+ The "<em class="em">Payload Header</em>" refers to either the Object (<code class="code">header:</code>) or Content within the Payload Packet representing the header.<br>
+ The "<em class="em">Payload Object</em>" refers to the Object within the Payload Packet (ie: <code class="code">payload:</code>).<br>
The "<em class="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 <code class="code">FSS-000E (Payload)</code> is very flexible in what it allows within the Header of the Payload Packet.<br>
The <strong class="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 class="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.
<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.
+ The <code class="code">error</code> type response Payload Packet is treated as an error response.<br>
+ For any error responses that are associated with an action, then the action header is provided (otherwise it is not expected and is ignored).<br>
+ 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.<br>
+ These error responses represents errors in attempting to perform some action.<br>
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.
+ The <code class="code">controller</code> type response Payload Packet represents a response regarding the result of performing a requested action.<br>
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
<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>.
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 class="strong">Control</strong> program fails to function due to some error, there will be no specially formatted message printed.
- When the <strong class="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 class="strong">Control</strong> program fails to function due to some error, there will be no specially formatted message printed.<br>
+ When the <strong class="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.<br>
When the <strong class="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>
<head>
<title>Documentation - Control - Specification - Settings</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/control/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/control/control/specifications.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>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/control.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/control/control/specifications.html" class="nav-text link">Control</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Settings</div>
</div>
<div class="nav-item block">
- <a href="documentation/control/specifications/packet_request.html" class="nav-text link">Packet Request</a>
+ <a href="projects/control/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>
+ <a href="projects/control/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>
+ <a href="projects/control/control/specifications/settings.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/control/control/specifications/settings.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<div class="main-content">
<p class="p">
- The <strong class="strong">Control</strong> defines the <em class="em">Settings Specification</em>.
+ The <strong class="strong">Control</strong> defines the <em class="em">Settings Specification</em>.<br>
This specification describes how the settings file is used by the <strong class="strong">Control</strong> program.
</p>
+
<p class="p">
The control settings "<em class="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.
+ Each Object represents a settings property name.<br>
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.
+ Each Content represents the values associated with that property.<br>
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>
<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.
+ The settings file provides default or system-wide settings.<br>
+ The system-wide settings file is loaded by default but a custom settings file may be alternatively specified.<br>
Using this avoids the need to add additional paramters to the command line when calling the <strong class="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 location of the settings file is compile time specific and should be changed depending on the particular design of the system.<br>
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.
+ This represents the file name used to construct the full socket path.<br>
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.
+ When not defined the compiled in default is used.<br>
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>
<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 represents the directory path to the socket file provided by the <code class="code">controller</code> or <code class="code">init</code> service.<br>
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.
+ When not defined the compiled in default is used.<br>
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.
+ 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.<br>
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 class="strong">Controller</strong> program to be compiled as an init program.
+ It is common for the <code class="code">controller</code> program to be compiled as an <code class="code">init</code> program.<br>
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>
<div>
<code class="code">path_socket_prefix</code>
</div>
+
<p class="p">
- This represents a prefix used to construct the full socket path.
+ This represents a prefix used to construct the full socket path.<br>
This prefix is prepended to the socket file name.
</p>
+
<p class="p">
- When not defined the compiled in default is used.
+ When not defined the compiled in default is used.<br>
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>
<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 represents a suffix used to construct the full socket path.<br>
This suffix is appended to the socket file name.
</p>
+
<p class="p">
- When not defined the compiled in default is used.
+ When not defined the compiled in default is used.<br>
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>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - Controller</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Controller project.">
+ <meta name="keywords" content="Controller, Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/controller.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">Controller</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/controller/controller.html" class="nav-text link">controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html" class="nav-text link">init</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/controller.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller.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">Project: Controller</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">Controller</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/controller/controller.html" class="link"><code class="code">controller</code></a></div>
+ <ol>
+ <li><a href="projects/controller/controller.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/controller/controller.html#parameters-program" class="link">Program Parameters</a></li>
+ <li>
+ <div><a href="projects/controller/controller/specifications.html" class="link">Specifications</a></div>
+ <ol type="a">
+ <li><a href="projects/controller/controller/specifications/action.html" class="link">Action</a></li>
+ <li><a href="projects/controller/controller/specifications/entry.html" class="link">Entry</a></li>
+ <li><a href="projects/controller/controller/specifications/exit.html" class="link">Exit</a></li>
+ <li><a href="projects/controller/controller/specifications/packet.html" class="link">Packet</a></li>
+ <li><a href="projects/controller/controller/specifications/rule.html" class="link">Rule</a></li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/controller/init.html" class="link"><code class="code">init</code></a></div>
+ <ol>
+ <li><a href="projects/controller/init.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/controller/init.html#parameters-program" class="link">Program Parameters</a></li>
+ <li>
+ <div><a href="projects/controller/init/specifications.html" class="link">Specifications</a></div>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - Controller</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/controller/controller.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 documentation">
+ <body id="kevux" class="kevux no-js program">
<div role="banner" class="header-block">
<header class="header-section header">
<div class="header-site">Kevux Systems and Software</div>
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/controller.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/controller.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/controller/controller.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/controller.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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 class="strong">init</strong> program. There are special compile-time configurations needed to make this properly operate as an <strong class="strong">init</strong> program.
+ 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 class="strong">init</strong> program.<br>
+ There are special compile-time configurations needed to make this properly operate as an <strong class="strong">init</strong> program.
</p>
+
<p class="p">
This tool operates similar to the <strong class="strong">fake</strong> program and can even be seen as an evolution to the <strong class="strong">fake</strong> program. The <strong class="strong">controller</strong> program, however is not a replacement to the <strong class="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 class="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.
+ In partial simulation mode, anything that the <strong class="strong">controller</strong> program has full control over and can simulate is simulated. Actual programs and scripts themselves, therefore, cannot be simulated.<br>
+ 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.
+ The validation mode is for making this tool more scriptable.<br>
+ 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 class="strong">init</strong> program replacement because the networking aspects are not yet written or fully hashed out. The <strong class="strong">contol</strong> program is also another key part to the <strong class="strong">contoller</strong> program in getting this to work as an <strong class="strong">init</strong> program. Ideally, once this support is complete, it should be possible to replace init programs, such as <strong class="strong">SystemD</strong>, with the <strong class="strong">controller</strong> program.
+ This tool is not currently fully functional as an <strong class="strong">init</strong> program replacement because the networking aspects are not yet written or fully hashed out.<br>
+ The <strong class="strong">contol</strong> program is also another key part to the <strong class="strong">contoller</strong> program in getting this to work as an <strong class="strong">init</strong> program.<br>
+ Ideally, once this support is complete, it should be possible to replace init programs, such as <strong class="strong">SystemD</strong>, with the <strong class="strong">controller</strong> program.
</p>
+
<p class="p">
- Further development will be made on this once the <strong class="strong">controller</strong> program is updated. The next development series is planned to focus on networking, which will include support for this.
+ Further development will be made on this once the <strong class="strong">controller</strong> program is updated.<br>
+ The next development series is planned to focus on networking, which will include support for this.
</p>
</div>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<tr class="row">
<td class="column"><code class="code">-c</code></td>
<td class="column"><code class="code">--cgroup</code></td>
- <td class="column">Specify a custom control group file path, such as '/sys/fs/cgroup/'.</td>
+ <td class="column">Specify a custom control group file path, such as <code class="code">/sys/fs/cgroup/</code>.</td>
</tr>
<tr class="row">
<td class="column"><code class="code">-d</code></td>
<tr class="row">
<td class="column"><code class="code">-p</code></td>
<td class="column"><code class="code">--pid</code></td>
- <td class="column">Specify a custom pid file path, such as 'controller/run/default.pid'.</td>
+ <td class="column">Specify a custom pid file path, such as <code class="code">controller/run/default.pid</code>.</td>
</tr>
<tr class="row">
<td class="column"><code class="code">-s</code></td>
<td class="column"><code class="code">--settings</code></td>
- <td class="column">Specify a custom settings path, such as 'controller/'.</td>
+ <td class="column">Specify a custom settings path, such as <code class="code">controller/</code>.</td>
</tr>
<tr class="row">
<td class="column"><code class="code">-S</code></td>
<tr class="row">
<td class="column"><code class="code">-k</code></td>
<td class="column"><code class="code">--socket</code></td>
- <td class="column">Specify a custom socket file path, such as 'controller/run/default.socket'.</td>
+ <td class="column">Specify a custom socket file path, such as <code class="code">controller/run/default.socket</code>.</td>
</tr>
<tr class="row">
<td class="column"><code class="code">-U</code></td>
<p class="p">
This describes the intent and purpose of the simulation and validation parameters.
</p>
+
<p class="p">
- The <strong class="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>).
+ The <strong class="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>).<br>
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 class="strong">Entry</strong> and Rule files (for Rule files specified in the <strong class="strong">Entry</strong> or <strong class="strong">Exit</strong> file).
- Errors are reported and nothing is executed.
- The <strong class="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 class="strong">Entry</strong> or <strong class="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 class="strong">Entry</strong> file is finished executing, the <code class="code">simulate</code> will continue to run waiting on <strong class="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>
+ <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 class="strong">Entry</strong> and Rule files (for Rule files specified in the <strong class="strong">Entry</strong> or <strong class="strong">Exit</strong> file).<br>
+ Errors are reported and nothing is executed.<br>
+ The <strong class="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 class="strong">Entry</strong> or <strong class="strong">Exit</strong> file.<br>
+ The simulation is not a true simulation in that no program is ever called to perform any operations.<br>
+ Furthermore, any <code class="code">script</code> specified inside a Rule is only simulated as a whole and not its individual parts.<br>
+ Once the <strong class="strong">Entry</strong> file is finished executing, the <code class="code">simulate</code> will continue to run waiting on <strong class="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.<br>
+ 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>
+ </ul>
+
<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.
+ 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.<br>
+ This allows for testing the designated permissions and other settings that would be applied when calling some program.<br>
Control Groups are not simulated but are actually created and the simulating process will actually be placed within the Control Group.
</p>
</div>
<div class="section-content">
<p class="p">
- The <strong class="strong">controller</strong> program utilizes the unit of measurement called a <em class="em">Time</em>, represented with uppercase <em class="em">T</em>.
- For comparison, a unit of <em class="em">Time</em> is equivalent to a nanosecond, or 10^-9 seconds.
+ The <strong class="strong">controller</strong> program utilizes the unit of measurement called a <em class="em">Time</em>, represented with uppercase <em class="em">T</em>.<br>
+ For comparison, a unit of <em class="em">Time</em> is equivalent to a nanosecond, or 10^-9 seconds.<br>
A <em class="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 class="em">Time</em> is intended to represent some unit of <em class="em">Time</em> such that a single 64-bit integer may hold all units of <em class="em">Time</em> for a single calendar year.
- This unit of <em class="em">Time</em> does not and must not include Years (unlike <em class="em">Unixtime</em>).
+ A unit of <em class="em">Time</em> is intended to represent some unit of <em class="em">Time</em> such that a single 64-bit integer may hold all units of <em class="em">Time</em> for a single calendar year.<br>
+ This unit of <em class="em">Time</em> does not and must not include Years (unlike <em class="em">Unixtime</em>).<br>
To convert from <em class="em">Time</em> to <em class="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 class="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) 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 class="em">Time</em> is easily represented as <code class="code">86.4 TT</code> (<em class="em">TeraTime</em>).
</p>
+
<p class="p">
- The <em class="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 class="em">Time</em> followed by a single colon ':' to associate a year with the <em class="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>.
+ The <em class="em">Time</em> may be stored in its <code class="code">year string format</code>.<br>
+ In this format, a Year may be prepended to the <em class="em">Time</em> followed by a single colon <code class="code">:</code> to associate a year with the <em class="em">Time</em>.<br>
+ This Year has no minimum or maximum but may not have decimals.<br>
+ For example, <code class="code">2020:86400000000000</code> would represent: January 02, 2020 0:00 <abbr title="Coordinated Universal Time">UTC</abbr>.<br>
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 class="em">Time</em>, called <em class="em">EpochTime</em>, works the same way as <em class="em">Time</em> except it represents seconds.
- This unit is designated <code class="code">E</code>.
- The format is similar to <em class="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>.
+ A second unit of <em class="em">Time</em>, called <em class="em">EpochTime</em>, works the same way as <em class="em">Time</em> except it represents seconds.<br>
+ This unit is designated <code class="code">E</code>.<br>
+ The format is similar to <em class="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>.<br>
When the year is not specified, then this is identical to UNIX Epoch.
</p>
+
<p class="p">
A unit of <em class="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 class="em">GigaEpochTime</em>).</li>
<li>1 (Earth) day = <code class="code">86400 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 class="em">EpochTime</em> is easily represented as <code class="code">86.4 KE</code> (<em class="em">KiloEpochTime</em>).
</p>
<head>
<title>Documentation - Controller - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/controller/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/controller/controller.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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/controller/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="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 class="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>
+ <li><a href="projects/controller/controller/specifications/action.html" class="link">Action</a></li>
+ <li><a href="projects/controller/controller/specifications/entry.html" class="link">Entry</a></li>
+ <li><a href="projects/controller/controller/specifications/exit.html" class="link">Exit</a></li>
+ <li><a href="projects/controller/controller/specifications/packet.html" class="link">Packet</a></li>
+ <li><a href="projects/controller/controller/specifications/rule.html" class="link">Rule</a></li>
</ul>
</div>
</main>
<head>
<title>Documentation - Controller - Specification - Action</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/controller/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/controller/controller/specifications.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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications.html" class="nav-text link">Controller</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Action</div>
</div>
<div class="nav-item block">
- <a href="documentation/controller/specifications/entry.html" class="nav-text link">Entry</a>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/action.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/controller/specifications/action.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The version date of this specification is <code class="code">2024/07/02</code>.
</p>
+
<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.
+ Each Action represents a specific intent and purpose but many of these actions are customizable via the rule file.<br>
+ One should expect an Action to operate as described here but the system administrator or distributor is fully capable of doing something different.<br>
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.
+ These actions should be usable by any <code class="code">control</code> program that communicates with this <code class="code">controller</code> program.<br>
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 class="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>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 class="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 class="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 class="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 class="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 class="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 class="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 class="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 class="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>
<head>
<title>Documentation - Controller - Specification - Entry</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/controller/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/controller/controller/specifications.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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/action.html" class="nav-text link">Action</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Entry</div>
</div>
<div class="nav-item block">
- <a href="documentation/controller/specifications/exit.html" class="nav-text link">Exit</a>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/entry.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/controller/specifications/entry.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The version date of this specification is <code class="code">2024/07/10</code>.
</p>
+
<p class="p">
The <strong class="strong">Entry</strong> files follow the <code class="code">FSS-0005 (Somewhat Basic List)</code> format.
</p>
+
<p class="p">
An <strong class="strong">Entry</strong> file name is expected to have the file extension <code class="code">.entry</code>.
</p>
+
<p class="p">
For each <strong class="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 class="em">Basic List Object</em> is considered the <code class="code">Item</code>.</li>
<li>Each <em class="em">Action Object</em> is the <code class="code">Action Name</code>.</li>
<li>Each <em class="em">Action Content</em> are the <code class="code">Action Parameters</code>.</li>
</ul>
+
<p class="p">
The <strong class="strong">Items</strong>:
</p>
+
<ul>
- <li><code class="code">main</code>: required.</li>
+ <li>
+ <code class="code">main</code>: required.
+ </li>
<li>
<div><code class="code">settings</code>: optional, Actions may be one of:</div>
<ul>
</ul>
</li>
</ul>
+
<p class="p">
The <strong class="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>
<p class="p">
This describes the intent and purpose of an <strong class="strong">Entry</strong> file.
</p>
+
<p class="p">
- An <strong class="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.
+ An <strong class="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.<br>
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.
+ The <code class="code">main</code> Item Object is always executed first (Therefore <code class="code">main</code> is both reserved and required).<br>
+ 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.<br>
Execution of all Items is top-down.
</p>
+
<p class="p">
The <code class="code">settings</code> item Object:
</p>
+
<ul>
<li>Represents <strong class="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>
<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>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>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 class="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 class="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 class="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 class="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 class="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 class="strong">Entry</strong>, but with the extension <code class="code">exit</code>, such as <code class="code">default.exit</code>.</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 class="strong">Entry</strong>.</li>
</ul>
+
<p class="p">
The <code class="code">pid</code> setting:
</p>
+
<ul>
<li>Represents how the <strong class="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">require</code>, check to see if the <abbr title="Process Identifier">PID</abbr> file exists for an <strong class="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 class="strong">Entry</strong> processing presents information to the screen.</li>
<li>This applies only to the <strong class="strong">Entry</strong> and Rule processing itself and does not handle the output of programs and scripts being executed by some <strong class="strong">Entry</strong> or Rule.</li>
<li>For <code class="code">normal</code>, will not report the start or stop of some <strong class="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 class="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>
<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>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>
+ </ul>
+
<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>Adding <code class="code">ready</code> essentially specifies a point in time in the <strong class="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>
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>
<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>
<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>
</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.
<head>
<title>Documentation - Controller - Specification - Exit</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/controller/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/controller/controller/specifications.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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/entry.html" class="nav-text link">Entry</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Exit</div>
</div>
<div class="nav-item block">
- <a href="documentation/controller/specifications/packet.html" class="nav-text link">Packet</a>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/exit.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/controller/specifications/exit.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The version date of this specification is <code class="code">2024/07/10</code>.
</p>
+
<p class="p">
The <strong class="strong">Exit</strong> files follow the <code class="code">FSS-0005 (Somewhat Basic List)</code> format.
</p>
+
<p class="p">
An <strong class="strong">Exit</strong> file name is expected to have the file extension <code class="code">.exit</code>.
</p>
+
<p class="p">
For each <strong class="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 class="em">Basic List Object</em> is considered the <code class="code">Item</code>.</li>
<li>Each <em class="em">Action Object</em> is the <code class="code">Action Name</code>.</li>
<li>Each <em class="em">Action Content</em> are the <code class="code">Action Parameters</code>.</li>
</ul>
+
<p class="p">
The <strong class="strong">Items</strong>:
</p>
+
<ul>
<li><code class="code">main</code>: required.</li>
<li>
</ul>
</li>
</ul>
+
<p class="p">
The <strong class="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>
<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>
<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>
<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>
<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>
<ul>
<li>
<div>The first may only be one of:</div>
+
<ul>
<li>wait</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>
<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>
<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>
<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>
<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>
<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>
<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>
<p class="p">
This describes the intent and purpose of an <strong class="strong">Exit</strong> file.
</p>
+
<p class="p">
An <strong class="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 class="strong">Exit</strong> is a special variation or subset of an <strong class="strong">Entry</strong>.
</p>
+
<p class="p">
The <code class="code">settings</code> item Object:
</p>
+
<ul>
<li>Represents <strong class="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>
<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>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 class="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 class="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 class="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 class="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 class="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 class="strong">Exit</strong>, but with the extension <code class="code">exit</code>, such as <code class="code">default.exit</code>.</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 class="strong">Exit</strong>.</li>
</ul>
+
<p class="p">
The <code class="code">pid</code> setting:
</p>
+
<ul>
<li>Represents how the <strong class="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">require</code>, check to see if the <abbr title="Process Identifier">PID</abbr> file exists for an <strong class="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 class="strong">Exit</strong> processing presents information to the screen.</li>
<li>This applies only to the <strong class="strong">Exit</strong> and Rule processing itself and does not handle the output of programs and scripts being executed by some <strong class="strong">Exit</strong> or Rule.</li>
<li>For <code class="code">normal</code>, will not report the start or stop of some <strong class="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 class="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>
<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>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>
+ </ul>
+
<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>Adding <code class="code">ready</code> essentially specifies a point in time in the <strong class="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>
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>
<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>
<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>
</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.
<head>
<title>Documentation - Controller - Specification - Packet</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/controller/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/controller/controller/specifications.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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/exit.html" class="nav-text link">Exit</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Packet</div>
</div>
<div class="nav-item block">
- <a href="documentation/controller/specifications/rule.html" class="nav-text link">Rule</a>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/packet.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/controller/specifications/packet.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The version date of this specification is <code class="code">2024/07/02</code>.
</p>
+
<p class="p">
The <strong class="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>
<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>
<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>
<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>
<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>
</ol>
</li>
</ul>
+
<p class="p">
The <strong class="strong">controller</strong> payload:
</p>
+
<ul>
<li>Commands being sent to the <strong class="strong">controller</strong> and their respective responses utilize a <strong class="strong">controller</strong> payload.</li>
<li>These are pre-defined commands to rules or the <strong class="strong">controller</strong> program itself.</li>
<li>Commands such as starting or stopping some rule, for example.</li>
<li>
<div>A <strong class="strong">controller</strong> payload is also sent in response to a <strong class="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>
</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>).
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 class="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 <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 class="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>
<head>
<title>Documentation - Controller - Specification - Rule</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/controller/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/controller/controller/specifications.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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/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>
+ <a href="projects/controller/controller/specifications/packet.html" class="nav-text link">Packet</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Rule</div>
<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>
+ <a href="projects/controller/controller/specifications/rule.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/controller/specifications/rule.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The version date of this specification is <code class="code">2024/07/02</code>.
</p>
+
<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>Each Setting Object is the <em class="em">Setting Name</em>.</li>
<li>Each Setting Content are the <em class="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">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">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">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">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">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>
<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">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>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>For <code class="code">stop</code>, this represents the number of <em class="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>.
+ 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>.<br>
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.
+ The <code class="code">script</code> Rule Type provides a series of lines to be executed by some engine, such as GNU Bash.<br>
+ This <code class="code">script</code> operates in the foreground, but individual things done within the script may operate in foreground or background.<br>
+ 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.<br>
+ 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.<br>
+ 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.<br>
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>
</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>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - Controller</title>
+
+ <base href="../../">
+
+ <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, 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">
+ <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="projects/controller/init.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 program">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/controller.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">Init</div>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html#time" class="nav-text link">Time</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ <a href="projects/controller/init/specifications.html" class="nav-text link">Init</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">See Also</div>
+ <a href="projects/controller/init.html#parameters-standard" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/controller/init.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/init.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 Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">init</strong> program is a tool for booting up a system.
+ </p>
+
+ <p class="p">
+ This program is a variation of the <code class="code">controller</code>: program.<br>
+ See the <a href="projects/controller/controller.html" class="link">controller</a> documentation for details.
+ </p>
+ </div>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+Q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+E</code></td>
+ <td class="column"><code class="code">++error</code></td>
+ <td class="column">Decrease verbosity, using only error output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+N</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+
+ <p class="p">
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--cgroup</code></td>
+ <td class="column">Specify a custom control group file path, such as <code class="code">/sys/fs/cgroup/</code>.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--daemon</code></td>
+ <td class="column">Run in daemon only mode (do not process the entry).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--init</code></td>
+ <td class="column">The program will run as an init replacement.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-i</code></td>
+ <td class="column"><code class="code">--interruptible</code></td>
+ <td class="column">Designate that this program can be interrupted by a signal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pid</code></td>
+ <td class="column">Specify a custom pid file path, such as <code class="code">controller/run/default.pid</code>.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--settings</code></td>
+ <td class="column">Specify a custom settings path, such as <code class="code">controller/</code>.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-S</code></td>
+ <td class="column"><code class="code">--simulate</code></td>
+ <td class="column">Run as a simulation.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-k</code></td>
+ <td class="column"><code class="code">--socket</code></td>
+ <td class="column">Specify a custom socket file path, such as <code class="code">controller/run/default.socket</code>.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-U</code></td>
+ <td class="column"><code class="code">--uninterruptible</code></td>
+ <td class="column">Designate that this program cannot be interrupted by a signal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-v</code></td>
+ <td class="column"><code class="code">--validate</code></td>
+ <td class="column">Validate the settings (entry and rules) without running (does not simulate).</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ When both the <code class="code">--simulate</code> parameter and the <code class="code">--validate</code> parameter are specified, then additional information on each would be executed rule is printed but no simulation is performed.
+ </p>
+
+ <p class="p">
+ The default interrupt behavior is to operate as if the <code class="code">--interruptible</code> parameter is passed.
+ </p>
+
+ <p class="p">
+ Specify an empty string for the <code class="code">--pid</code> parameter to disable pid file creation for this program.
+ </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 class="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>).<br>
+ 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 class="strong">Entry</strong> and Rule files (for Rule files specified in the <strong class="strong">Entry</strong> or <strong class="strong">Exit</strong> file).<br>
+ Errors are reported and nothing is executed.<br>
+ The <strong class="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 class="strong">Entry</strong> or <strong class="strong">Exit</strong> file.<br>
+ The simulation is not a true simulation in that no program is ever called to perform any operations.<br>
+ Furthermore, any <code class="code">script</code> specified inside a Rule is only simulated as a whole and not its individual parts.<br>
+ Once the <strong class="strong">Entry</strong> file is finished executing, the <code class="code">simulate</code> will continue to run waiting on <strong class="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.<br>
+ 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>
+ </ul>
+
+ <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.<br>
+ This allows for testing the designated permissions and other settings that would be applied when calling some program.<br>
+ 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 class="strong">controller</strong> program utilizes the unit of measurement called a <em class="em">Time</em>, represented with uppercase <em class="em">T</em>.<br>
+ For comparison, a unit of <em class="em">Time</em> is equivalent to a nanosecond, or 10^-9 seconds.<br>
+ A <em class="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 class="em">Time</em> is intended to represent some unit of <em class="em">Time</em> such that a single 64-bit integer may hold all units of <em class="em">Time</em> for a single calendar year.<br>
+ This unit of <em class="em">Time</em> does not and must not include Years (unlike <em class="em">Unixtime</em>).<br>
+ To convert from <em class="em">Time</em> to <em class="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 class="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 class="em">Time</em> is easily represented as <code class="code">86.4 TT</code> (<em class="em">TeraTime</em>).
+ </p>
+
+ <p class="p">
+ The <em class="em">Time</em> may be stored in its <code class="code">year string format</code>.<br>
+ In this format, a Year may be prepended to the <em class="em">Time</em> followed by a single colon <code class="code">:</code> to associate a year with the <em class="em">Time</em>.<br>
+ This Year has no minimum or maximum but may not have decimals.<br>
+ For example, <code class="code">2020:86400000000000</code> would represent: January 02, 2020 0:00 <abbr title="Coordinated Universal Time">UTC</abbr>.<br>
+ 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 class="em">Time</em>, called <em class="em">EpochTime</em>, works the same way as <em class="em">Time</em> except it represents seconds.<br>
+ This unit is designated <code class="code">E</code>.<br>
+ The format is similar to <em class="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>.<br>
+ When the year is not specified, then this is identical to UNIX Epoch.
+ </p>
+
+ <p class="p">
+ A unit of <em class="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 class="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 class="em">EpochTime</em> is easily represented as <code class="code">86.4 KE</code> (<em class="em">KiloEpochTime</em>).
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /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="projects/controller/init/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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/controller/init.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="projects/controller/init.html" class="nav-text link">Controller</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.html#simulate" class="nav-text link">Simulate</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/controller/init.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">
+ <div class="nav-text notice">See Also</div>
+ <a href="projects/controller/init.html#parameters-standard" class="nav-text link">Init</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/controller/init/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/controller/init/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">
+ See the <a href="projects/controller/controller.html" class="link">controller</a> specifications for further details.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - Featureless Make</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Featureless Make project.">
+ <meta name="keywords" content="Fake, Featureless, FLL, Kevin Day, Kevux, Linux, Library, Make, Open-Source, Project">
+ <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="projects/fake.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">Featureless Make</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/fake/fake.html" class="nav-text link">fake</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fake.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fake.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">Project: Featureless Make</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">Featureless Make</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/fake/fake.html" class="link"><code class="code">fake</code></a></div>
+ <ol>
+ <li><a href="projects/fake/fake.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fake/fake.html#parameters-program" class="link">Program Parameters</a></li>
+ <li>
+ <div><a href="projects/fake/fake/specifications.html" class="link">Specifications</a></div>
+ <ol type="a">
+ <li><a href="projects/fake/fake/specifications/define.html" class="link">Define</a></li>
+ <li><a href="projects/fake/fake/specifications/dependencies.html" class="link">Dependencies</a></li>
+ <li><a href="projects/fake/fake/specifications/fakefile.html" class="link">Fakefile</a></li>
+ <li><a href="projects/fake/fake/specifications/settings.html" class="link">Settings</a></li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - Featureless Make</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fake/fake.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fake.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/fake.html#operations" class="nav-text link">Operations</a>
</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>
+ <a href="projects/fake/fake/specifications.html" class="nav-text link">Featureless Make</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/defines.html" class="nav-text link">Defines</a>
+ <a href="projects/fake/fake/specifications/defines.html" class="nav-text link">Defines</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
+ <a href="projects/fake/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
+ <a href="projects/fake/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/settings.html" class="nav-text link">Settings</a>
+ <a href="projects/fake/fake/specifications/settings.html" class="nav-text link">Settings</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fake.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fake.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fake/fake.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fake/fake.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="strong">fake</strong> program, also called <strong class="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 class="strong">GNU Make</strong> program operates.
</p>
+
<p class="p">
- This tools is directly intended to be a replacement to the <strong class="strong">GNU Make</strong> program but not as a replacement for all of the <strong class="strong">GNU Make</strong> functionality. Instead, the <strong class="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.
+ This tools is directly intended to be a replacement to the <strong class="strong">GNU Make</strong> program but not as a replacement for all of the <strong class="strong">GNU Make</strong> functionality.<br>
+ Instead, the <strong class="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 class="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.
+ Despite this non-standard ideology, the <strong class="strong">fake</strong> program is flexible enough to be used as an installer.<br>
+ 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.
+ 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.<br>
+ 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 class="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 class="strong">build</strong> operation.</li>
<li>The <strong class="strong">make</strong> operation.</li>
</ol>
+
<p class="p">
- The <strong class="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.
+ The <strong class="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.<br>
+ 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 class="strong">make</strong> mode is the mode for operating as a replacement to the <strong class="strong">GNU Make</strong> program. This provides scriptable ways to perform just about any task needed when building a system. Many of the <strong class="strong">build</strong> mode settings are available (but are not required) and this mode can even call the <strong class="strong">build</strong> mode itself.
+ The <strong class="strong">make</strong> mode is the mode for operating as a replacement to the <strong class="strong">GNU Make</strong> program.<br>
+ This provides scriptable ways to perform just about any task needed when building a system.<br>
+ Many of the <strong class="strong">build</strong> mode settings are available (but are not required) and this mode can even call the <strong class="strong">build</strong> mode itself.
</p>
</div>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
When using the <code class="code">-d/--define</code> parameter the define structure must be passed as-is and may even need to be quoted if there is whitespace.
</p>
+
<p class="p">
- For example, in the <strong class="strong">C</strong> programming, passing a macro to the compiler might look like '<code class="code">-DMY_MACRO=1</code>'. To do this using <code class="code">-d/--define</code>, there would be two parameters passed like this: '<code class="code">-d -DMY_MACRO=1</code>'. This works because the parameter after the <code class="code">-d/--define</code> is not interpreted and is treated exactly as is without interpreting it as a parameter to the <strong class="strong">fake</strong> program.
+ For example, in the <strong class="strong">C</strong> programming, passing a macro to the compiler might look like '<code class="code">-DMY_MACRO=1</code>'.<br>
+ To do this using <code class="code">-d/--define</code>, there would be two parameters passed like this: '<code class="code">-d -DMY_MACRO=1</code>'.<br>
+ This works because the parameter after the <code class="code">-d/--define</code> is not interpreted and is treated exactly as is without interpreting it as a parameter to the <strong class="strong">fake</strong> program.
</p>
+
<p class="p">
Because of this, passing '<code class="code">-d -h</code>' would not print the program help because the '<code class="code">-h</code>' is considered a value associated with the '<code class="code">-d</code>' parameter rather than a parameter itself.
</p>
</tbody>
</table>
</div>
+
<p class="p">
When performing the build operation, the <code class="code">--mode</code> parameter specifies a name (limited to alpha-numeric, underscore, and dash) to be used in addition to the global.
</p>
+
<p class="p">
For example, when a mode of '<code class="code">fll_monolithic</code>' is specified, build libraries from both '<code class="code">build_libraries</code>' and '<code class="code">build_libraries-fll_monolithic</code>' are used (but not '<code class="code">build_libraries-fll_level</code>').
</p>
+
<p class="p">
When specifying the <code class="code">fakefile</code> or the settings parameters, the project root is seached first and then the build data director is searched when the given file does not contain a directory separator.
</p>
+
<p class="p">
For example, with '<code class="code">--fakefile my_fakefile</code>' the fakefile at '<code class="code">./my_fakefile</code>' is used if found, but if it is not found then '<code class="code">./data/build/my_fakefile</code>' is used if found.
</p>
+
<p class="p">
For example, with '<code class="code">--fakefile ./my_fakefile</code>' the fakefile at '<code class="code">./my_fakefile</code>' is used if found, but if it is not found then no other paths are attempted.
</p>
+
<p class="p">
When piping data to this program, the piped data is treated as a <code class="code">fakefile</code>.
</p>
+
<p class="p">
Only the <strong class="strong">make</strong> operation is supported when using piped data.
</p>
<head>
<title>Documentation - Featureless Make - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fake/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fake/fake.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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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">
- <a href="documentation/fake/specifications/defines.html" class="nav-text link">Defines</a>
+ <a href="projects/fake/fake/specifications/defines.html" class="nav-text link">Defines</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
+ <a href="projects/fake/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
+ <a href="projects/fake/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/settings.html" class="nav-text link">Settings</a>
+ <a href="projects/fake/fake/specifications/settings.html" class="nav-text link">Settings</a>
</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>
+ <a href="projects/fake/fake/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fake/fake/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">Featureless Make</strong> follows the following specifications:
</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-0005.html" class="link">FSS-0005 (Somewhat Basic List)</a></li>
<li><a href="fll/specifications/iki/iki-0002.html" class="link">IKI-0002 (Simple Script)</a></li>
</ul>
+
<p class="p">
The <strong class="strong">Featureless Make</strong> defines the following specifications:
</p>
+
<ul>
- <li><a href="documentation/fake/specifications/defines.html" class="link">Defines</a></li>
- <li><a href="documentation/fake/specifications/dependencies.html" class="link">Dependencies</a></li>
- <li><a href="documentation/fake/specifications/fakefile.html" class="link">Fakefile</a></li>
- <li><a href="documentation/fake/specifications/settings.html" class="link">Settings</a></li>
+ <li><a href="projects/fake/fake/specifications/defines.html" class="link">Defines</a></li>
+ <li><a href="projects/fake/fake/specifications/dependencies.html" class="link">Dependencies</a></li>
+ <li><a href="projects/fake/fake/specifications/fakefile.html" class="link">Fakefile</a></li>
+ <li><a href="projects/fake/fake/specifications/settings.html" class="link">Settings</a></li>
</ul>
</div>
</main>
<head>
<title>Documentation - Featureless Make - Specification - Defines</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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/defines.html">
+ <link rel="canonical" href="projects/fake/fake/specifications/defines.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fake/fake/specifications.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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/fake.html#operations" class="nav-text link">Operations</a>
</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>
+ <a href="projects/fake/fake/specifications.html" class="nav-text link">Featureless Make</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Defines</div>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
+ <a href="projects/fake/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
+ <a href="projects/fake/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/settings.html" class="nav-text link">Settings</a>
+ <a href="projects/fake/fake/specifications/settings.html" class="nav-text link">Settings</a>
</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/defines.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fake/specifications/defines.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fake/fake/specifications/defines.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fake/fake/specifications/defines.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The build settings <strong class="strong">defines</strong> file follows the <code class="code">FSS-0000 (Basic)</code> format.
</p>
+
<p class="p">
Each Object represents a specific a macro name to be defined during compilation.
</p>
+
<p class="p">
Each Content represents documentation explaining the intent and purpose of that define.
</p>
+
<p class="p">
- The Object name has further restrictions than <code class="code">FSS-0000</code> requires.
- These restrictions are that the Object must only evaluate to a valid C/C++ macro name.
+ The Object name has further restrictions than <code class="code">FSS-0000</code> requires.<br>
+ These restrictions are that the Object must only evaluate to a valid C/C++ macro name.<br>
This is essentially means only Word characters.
</p>
</div>
<head>
<title>Documentation - Featureless Make - Specification - Dependencies</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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/dependencies.html">
+ <link rel="canonical" href="projects/fake/fake/specifications/dependencies.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fake/fake/specifications.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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/fake.html#operations" class="nav-text link">Operations</a>
</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>
+ <a href="projects/fake/fake/specifications.html" class="nav-text link">Featureless Make</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/defines.html" class="nav-text link">Defines</a>
+ <a href="projects/fake/fake/specifications/defines.html" class="nav-text link">Defines</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Dependencies</div>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
+ <a href="projects/fake/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/settings.html" class="nav-text link">Settings</a>
+ <a href="projects/fake/fake/specifications/settings.html" class="nav-text link">Settings</a>
</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/dependencies.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fake/specifications/dependencies.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fake/fake/specifications/dependencies.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fake/fake/specifications/dependencies.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The build settings <strong class="strong">dependencies</strong> file follows the <code class="code">FSS-0001 (Extended)</code> format.
</p>
+
<p class="p">
Each Object represents a specific project name as it would be linked against.
</p>
+
<p class="p">
Each Content represents associated information, such as a version number.
</p>
+
<p class="p">
Future versions of this will clarify what and how Content, such as version numbers, are to be used and processed.
</p>
+
<p class="p">
- This file is originally intended for dependencies provided by the <abbr title="Featureless Linux Library">FLL</abbr> project.
- Order matters, and the provided order represents the order of dependencies.
+ This file is originally intended for dependencies provided by the <abbr title="Featureless Linux Library">FLL</abbr> project.<br>
+ Order matters, and the provided order represents the order of dependencies.<br>
The first entry therefore has no preceding dependency and the last dependency could potentially depend on all dependencies above it.
</p>
</div>
<head>
<title>Documentation - Featureless Make - Specification - Fakefile</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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/fakefile.html">
+ <link rel="canonical" href="projects/fake/fake/specifications/fakefile.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fake/fake/specifications.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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/fake.html#operations" class="nav-text link">Operations</a>
</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>
+ <a href="projects/fake/fake/specifications.html" class="nav-text link">Featureless Make</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/defines.html" class="nav-text link">Defines</a>
+ <a href="projects/fake/fake/specifications/defines.html" class="nav-text link">Defines</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
+ <a href="projects/fake/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Fakefile</div>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/settings.html" class="nav-text link">Settings</a>
+ <a href="projects/fake/fake/specifications/settings.html" class="nav-text link">Settings</a>
</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/fakefile.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fake/specifications/fakefile.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fake/fake/specifications/fakefile.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fake/fake/specifications/fakefile.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="strong">fakefile</strong> file follows the <code class="code">FSS-0005 (Somewhat Basic List)</code> format with a sub-format of <code class="code">IKI-0002 (Simple Script)</code>.
</p>
+
<p class="p">
A <strong class="strong">fakefile</strong> is broken up into multiple Basic Lists, referred to as Sections, with two special purpose reserved Sections.
</p>
+
<p class="p">
The Sections are broken up into multiple Extended Objects and their respective <em class="em">Contents</em>, referred to as Section Operations.
</p>
+
<p class="p">
Each of these non-reserved Sections acts as a set to perform some set of Section Operations.
</p>
+
<p class="p">
Each of these Section Operations perform a single command or action based on a set of reserved Section Operation types.
</p>
+
<p class="p">
Each of these Section Operations have a set of Arguments associated with them.
</p>
+
<p class="p">
How these Arguments are interpreted and processed are specific to each Operation type.
</p>
+
<p class="p">
The Section Operations are represented by the Extended Object name and the Extended Content represents the Operation Arguments.
</p>
+
<p class="p">
Each of these Section Operations support IKI variable substitution within their respective Arguments.
</p>
+
<p class="p">
The Operation Extended Object does not support IKI variable substitution.
</p>
+
<p class="p">
The reserved Settings Section does not support IKI variable substitution.
</p>
+
<p class="p">
The <code class="code">IKI-0002 (Simple Script)</code> vocabulary context is further clarified as follows:
</p>
+
<ul>
<li><code class="code">context</code>: The value is case-sensitive variable name.</li>
<li><code class="code">define</code>: The value must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits).</li>
</ul>
</li>
</ul>
+
<p class="p">
The reserved Section Objects are:
</p>
+
<ul>
<li><code class="code">settings</code>: contains a list of Settings Objects and Content in <code class="code">FSS-0001 (Extended)</code> format.</li>
<li><code class="code">main:</code> contains a list of Operation Objects and Content in <code class="code">FSS-0001 (Extended)</code> format.</li>
</ul>
+
<p class="p">
The Settings Objects are:
</p>
+
<ul>
<li><code class="code">compiler</code>: Only one Content, which must only be a valid filename.</li>
<li><code class="code">define</code>: First Content represents the variable name (case-sensitive), remaining Content represents the value.</li>
<li><code class="code">parameter</code>: First Content represents the variable name (case-sensitive), remaining Content represents the value.</li>
<li><code class="code">stage</code>: Zero or one Content, which represents the build stage name (case-sensitive) (no slashes allowed).</li>
</ul>
+
<p class="p">
The build settings may also be specified in the Settings Section.
</p>
+
<p class="p">
The Section Operation Objects are:
</p>
+
<ul>
<li><code class="code">and</code>: One or more Content. First Content is the condition or <code class="code">no_dereference</code> (when <code class="code">no_dereference</code>, then the Second Content is the condition, etc..), remaining Content are specific to the condition.</li>
<li><code class="code">break</code>: Zero or one Content. If specified, First content must be one of <code class="code">success</code> or <code class="code">failure</code>.</li>
<li><code class="code">touch</code>: Two or more Content. First Content is one of <code class="code">file</code> or <code class="code">directory</code>, remaining Content are paths to files.</li>
<li><code class="code">write</code>: One or more Content. First Content the file to write to, remaining Content represent the string to write.</li>
</ul>
+
<p class="p">
The <code class="code">if</code> Section Operation conditions are:
</p>
+
<ul>
<li><code class="code">==</code>: Two or more Content.</li>
<li><code class="code">></code>: Two or more Content.</li>
<li><code class="code">parameter</code>: One or more Content are valid IKI names.</li>
<li><code class="code">success</code>: has no other Content.</li>
</ul>
+
<p class="p">
The <code class="code">if</code> Section Operation conditions and numbers:
</p>
+
<ul>
<li>
<div>The numbers may be represented in any of the forms:</div>
+
<ol>
<li><code class="code">decimal</code>: all numbers without a base-type prefix are of base-type 10, referred to as decimal.</li>
<li><code class="code">binary</code>: all numbers with the prefix <code class="code">0b</code> (uppercase or lowercase <code class="code">b</code>) are of base-type 2, referred to as binary.</li>
<li><code class="code">duodecimal</code>: all numbers with the prefix <code class="code">0d</code> (uppercase or lowercase <code class="code">d</code>) are of base-type 12, referred to as duodecimal.</li>
<li><code class="code">hexadecimal</code>: all numbers with the prefix <code class="code">0x</code> (uppercase or lowercase <code class="code">x</code>) are of base-type 16, referred to as hexadecimal.</li>
</ol>
+
<p class="p">
(At this time) The numbers may be of a max value of 2^64, or 18446744073709551615, positive or negative.
</p>
+
<p class="p">
(At this time) The numbers may only be whole numbers.
</p>
+
<p class="p">
Note: There are plans to impose no limits on the number size or any decimal values, but this requires significant work is not to be implemented at this time.
Once this restriction is lifted, it should be conditional upon an implementation for what the maximum supported numbers or digits may be.
</p>
+
<div>
Only the following <code class="code">if</code> Section Operation conditions use these operators:
</div>
+
<ul>
<li><code class="code">></code></li>
<li><code class="code"><</code></li>
</ul>
</li>
</ul>
+
<p class="p">
The <code class="code">if</code> Section Operation condition <code class="code">parameter</code>:
</p>
+
<ul>
<li>The following reserved words are available for parameter names: <code class="code">build</code>, <code class="code">color</code>, <code class="code">current</code>, <code class="code">data</code>, <code class="code">define</code>, <code class="code">fakefile</code>, <code class="code">mode</code>, <code class="code">process</code>, <code class="code">return</code>, <code class="code">settings</code>, <code class="code">sources</code>, <code class="code">top</code>, <code class="code">verbosity</code>, and <code class="code">work</code>.</li>
<li>Each of the reserved words supports having <code class="code">:option</code> and <code class="code">:value</code> appended, such as: <code class="code">work:value</code>.</li>
<p class="p">
This describes intent and purposes of the <strong class="strong">fakefile</strong> file settings.
</p>
+
<p class="p">
All files specified are relative to the project root.
</p>
+
<p class="p">
The reserved Section Names are defined as follows:
</p>
+
<ul>
<li>
<div><code class="code">settings</code>:</div>
+
<p class="p">
Any configuration specific to this <strong class="strong">fakefile</strong> is stored here.
</p>
+
<p class="p">
This includes the declaration of define and parameter IKI variable substitution values.
</p>
+
<p class="p">
If multiple <strong class="strong">Objects</strong> of the same name exist and that <strong class="strong">Object</strong> only supports a single value, then only the <strong class="strong">Content</strong> from the last same named <strong class="strong">Object</strong> is used.
</p>
+
<p class="p">
The build settings may also be specified in the Settings Section.
</p>
+
<p class="p">
The following settings are available (in addition to the build settings):
</p>
+
<ul>
<li>
<div><code class="code">compiler</code>:</div>
+
<ul>
<li>
<div>This represents the name of the compiler program to use, such as <code class="code">gcc</code>.</div>
+
<p class="p">
The programs <code class="code">gcc</code> and <code class="code">clang</code> are known to work.
</p>
+
<p class="p">
Many of the parameters in the settings file can be changed if using a non-GCC, but there may be certain hard-coded functionality that may need to be changed.
</p>
+
<p class="p">
When specified and <code class="code">load_build</code> is <code class="code">true</code>, then this will override the <code class="code">build_compiler</code> specified in the loaded build settings.
</p>
</li>
<li>
<div><code class="code">define</code>:</div>
+
<ul>
<li>
<div>This represents an environment variable to define on run.</div>
+
<p class="p">
The environment variable name is case-sensitive.
</p>
+
<p class="p">
This replaces the value of any existing environment variable with this name.
</p>
<ul>
<li>
<div>This represents all environment variables that are exposed when executing sub-programs.</div>
+
<p class="p">
This is not auto-populated for environment variables defined in the <code class="code">define</code> setting.
</p>
+
<p class="p">
When defined with no Content, then this means that no environment variables are exposed.
</p>
+
<p class="p">
When not defined at all, then all environment variables are exposed.
</p>
+
<p class="p">
Environment variables may still be exposed if <code class="code">load_build</code> is <code class="code">true</code> and the build setting file defines any environment variable names.
</p>
<ul>
<li>
<div>Designates the fail mode when running external programs, such as through the <code class="code">run</code> or <code class="code">shell</code> operations.</div>
+
<p class="p">
There are three options:
</p>
+
<ol>
<li><code class="code">exit</code>: Designates to exit the program on failure, printing an error message.</li>
<li><code class="code">warn</code>: Designates to continue on and if in verbose mode then print a warning.</li>
<li><code class="code">ignore</code>: Designates to do nothing.</li>
</ol>
+
<p class="p">
The return code for programs can still be retrieved through using the reserved IKI vaiable <code class="code">return</code>.
</p>
<ul>
<li>
<div>This represents the name of the indexer program to use, such as <code class="code">ar</code>.</div>
+
<p class="p">
An indexer is often called a linker.
</p>
+
<p class="p">
Similar to <code class="code">build_compiler</code>, any linker that supports the <code class="code">ar</code> program parameters is effectively supported.
</p>
+
<p class="p">
When specified and <code class="code">load_build</code> is <code class="code">true</code>, then this will override the <code class="code">build_indexer</code> specified in the loaded build settings.
</p>
<ul>
<li>
<div>This represents arguments needed to build an archive file from object files, such as <code class="code">rcs</code>.</div>
+
<p class="p">
These arguments are placed immediately before the object files passed to the <code class="code">indexer</code> program.
</p>
<ul>
<li>
<div>This represents whether or not to load the load the build settings file.</div>
+
<p class="p">
The first Content value may be <code class="code">true</code> to load the build settings and <code class="code">false</code> to not load the build settings file.
</p>
<ul>
<li>
<div>This defines an IKI variable name to substitute with the value.</div>
+
<p class="p">
This replaces the value of any existing environment variable with this name.
</p>
+
<p class="p">
The first Content value represents the IKI variable name.
</p>
+
<p class="p">
All Content values after the first represent the values the matching IKI variable is replaced with.
</p>
+
<p class="p">
The parameter variable name <code class="code">return</code> is used to store the return result of a <code class="code">run</code> or <code class="code">shell</code> operation.
</p>
+
<p class="p">
Setting this here only sets the default <code class="code">return</code> parameter variable value.
</p>
<ul>
<li>
<div>This defines a name that is added to the build stage files to help uniquely identify build stages associated with this file.</div>
+
<p class="p">
This name must only have valid characters for a particular file system.
</p>
+
<p class="p">
The variables allowed are different from file system to file system and so special characters should generally be avoided.
</p>
+
<p class="p">
To help prevent problems with paths, slashes (forward slash and backward slash) are not allowed in the stage name.
</p>
</ul>
<li>
<div><code class="code">main</code>:</div>
+
<p class="p">
This is the main entry point when processing the <strong class="strong">fakefile</strong>.
</p>
+
<p class="p">
This is processed top-down until the end of the list is reached.
</p>
+
<p class="p">
The following operations are available:
</p>
+
<ul>
<li>
<div><code class="code">and</code>:</div>
+
<p class="p">
A special type of an <code class="code">if</code> operation.
</p>
+
<p class="p">
May only be specified following a valid <code class="code">if</code>, <code class="code">and</code>, or <code class="code">or</code> operation.
</p>
+
<p class="p">
This is executed only if the previous <code class="code">if</code> operation result is true.
</p>
+
<p class="p">
When executed, this performs the test and returns true or false as appropriate.
</p>
+
<p class="p">
When not executed, this passes through the result of the previous <code class="code">if</code>, <code class="code">and</code>, or <code class="code">or</code> operation.
</p>
- <p class="p">
</li>
<li>
<div><code class="code">build</code>:</div>
+
<p class="p">
Run the fake build operation as if <code class="code">fake build</code> was run instead of <code class="code">fake make</code>.
</p>
+
<p class="p">
Command line arguments are automatically passed to the fake build operation.
</p>
+
<p class="p">
Accepts an optional Content that is a file name to a build settings file to use instead of the default.
</p>
+
<p class="p">
This file name is relative to the data build directory (which can be changed by -D/--data parameter).
</p>
+
<p class="p">
If the optional file name Content is specified, then it also supports additional modes to use instead of the default mode.
</p>
+
<p class="p">
When no additional Content after the <code class="code">build</code> is specified, then the default (or program supplied) settings file and modes are used.
</p>
+
<p class="p">
When the first Content after the <code class="code">build</code> is specified as an empty string, then the default (or program supplied) settings file is used.
</p>
+
<p class="p">
When the second Content after the <code class="code">build</code> (and there is no third Content), then no modes are used.
</p>
</li>
<li>
<div><code class="code">break</code>:</div>
+
<p class="p">
Perform an exit from the current make operation.
</p>
+
<p class="p">
This only exists the current depth.
</p>
+
<p class="p">
If the depth is at the top (aka: 0), then this is identical to the <code class="code">exit</code> section operation.
</p>
+
<p class="p">
The second Content may be either 'succeed' or 'fail' to designate on whether or not to exit as success or failure.
</p>
+
<p class="p">
When set to <code class="code">failure</code> this will trigger any failure (with message), depending on the current fail state.
</p>
</li>
<li>
<div><code class="code">clean</code>:</div>
+
<p class="p">
Run the fake clean operation as if <code class="code">fake clean</code> was run instead of <code class="code">fake make</code>.
</p>
+
<p class="p">
Command line arguments are automatically passed to the fake build operation.
</p>
</li>
<li>
<div><code class="code">clone</code>:</div>
+
<p class="p">
Copy all files (and directories), preserving all properties, into the last content.
</p>
+
<p class="p">
If there are more than one file (or directory) being copied, then the final path must be a directory.
</p>
+
<p class="p">
All Content, except last, represents the files to clone.
</p>
+
<p class="p">
The last Content represents the destination file (or directory) to clone to.
</p>
</li>
<li>
<div><code class="code">compile</code>:</div>
+
<p class="p">
Execute the compiler program, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
All Content are passed as arguments to the respective <code class="code">gcc</code> program.
</p>
</li>
<li>
<div><code class="code">copy</code>:</div>
+
<p class="p">
Copy all files (and directories) into the last content.
</p>
+
<p class="p">
If there are more than one file (or directory) being copied, then the final path must be a directory.
</p>
+
<p class="p">
All Content, except last, represents the files to copy.
</p>
+
<p class="p">
The last Content represents the destination file (or directory) to copy to.
</p>
</li>
<li>
<div><code class="code">define</code>:</div>
+
<p class="p">
This represents an environment variable to define on run.
</p>
+
<p class="p">
The environment variable name is case-sensitive.
</p>
+
<p class="p">
This replaces the value of any existing environment variable with this name.
</p>
</li>
<li>
<div><code class="code">delete</code>:</div>
+
<p class="p">
Delete one or more files or directories.
</p>
+
<p class="p">
All Content must be the file or directory to be deleted.
</p>
+
<p class="p">
If the path is a directory and is not empty, then this will not delete the directory.
</p>
</li>
<li>
<div><code class="code">deletes</code>:</div>
+
<p class="p">
Identical to <code class="code">delete</code>, except that when the path is a directory and is not empty, then this will delete the directory.
</p>
</li>
<li>
<div><code class="code">else</code>:</div>
+
<p class="p">
Performs a programmatic <code class="code">else</code> condition.
</p>
+
<p class="p">
Must be specified following a valid if operation (and the operation it affects).
</p>
+
<p class="p">
This has no Content.
</p>
+
<p class="p">
An else operation may not follow this.
</p>
+
<p class="p">
An if operation may immediately follow to represent an <code class="code">else if</code> condition.
</p>
</li>
<li>
<div><code class="code">exit</code>:</div>
+
<p class="p">
Perform an exit from the entire make operation.
</p>
+
<p class="p">
This always exits completely, regardless of the operation depth.
</p>
+
<p class="p">
The second Content may be either 'success' or 'failure' to designate on whether or not to exit as success or failure.
</p>
+
<p class="p">
When set to <code class="code">failure</code> this will trigger a failure message.
</p>
+
<p class="p">
When set to <code class="code">failure</code>, the fail state will be forcibly changed to <code class="code">fail</code> regardless of the current fail state.
</p>
</li>
<li>
<div><code class="code">fail</code>:</div>
+
<p class="p">
Toggle how the to handle an operation failure.
</p>
+
<p class="p">
The first Content may be one of the following:
</p>
+
<ul>
<li><code class="code">exit</code>: Set failure handler to exit on failure.</li>
<li><code class="code">warn</code>: Set failure handler to print a warning on failure but continue on.</li>
</li>
<li>
<div><code class="code">group</code>:</div>
+
<p class="p">
Change the group role for a given file.
</p>
+
<p class="p">
The first Content represents the group to assign.
</p>
+
<p class="p">
The second Content represents the file to assign the group to.
</p>
</li>
<li>
<div><code class="code">groups</code>:</div>
+
<p class="p">
Identical to group operation, except this will recursively apply the mode to all files within the given file, if that file is a directory file path.
</p>
</li>
<li>
<div><code class="code">if</code>:</div>
+
<p class="p">
Performs a programmatic <code class="code">if</code> condition.
</p>
+
<p class="p">
May be specified following a valid <code class="code">else</code> operation.
</p>
+
<p class="p">
The Content represents a set of conditions to perform.
</p>
+
<p class="p">
The <code class="code">if</code> operation may be used in conjunction with the <code class="code">and</code>, <code class="code">or</code>, and the <code class="code">else</code> operations.
</p>
+
<p class="p">
The conditional logic is different from normal logic found in most software programs.
</p>
+
<p class="p">
There is only one order of operation, a top-down design where the current operation relates to the previous operation.
</p>
+
<p class="p">
This is mostly relevant when <code class="code">if</code> operation is followed by an <code class="code">and</code> or an <code class="code">or</code> operation.
</p>
+
<p class="p">
Consider the following:
</p><pre class="preserve">
else
print third
</pre>
+
<p class="p">
The resulting logic is as follows:
</p>
+
<ol>
<li>If <code class="code">xxx</code> is defined, then...</li>
<li>If result from (1) is TRUE or if <code class="code">yyy</code> is defined, then...</li>
<li>If result from (4) is TRUE, then...</li>
<li>If result from (5) is FALSE, then...</li>
</ol>
+
<p class="p">
For all conditions that rely on numbers, only whole numbers are (currently) supported.
</p>
+
<p class="p">
conditions:
</p>
+
<ul>
<li>
<div><code class="code">== "left" "right"</code>:</div>
+
<p class="p">
Compare all parameters to be equal.
</p>
+
<p class="p">
Requires 2 or more after the <code class="code">==</code>.
</p>
+
<p class="p">
For example, <code class="code">if == 'a' 'b' 'c' 'd'</code> would test: <code class="code">'a' == 'b' && 'b' == 'c' && 'c' == 'd'</code>.
</p>
+
<p class="p">
This performs only string-based comparisons.
</p>
</li>
<li>
<div><code class="code">> "left string" "right string"</code>:</div>
+
<p class="p">
Compare <code class="code">left</code> to <code class="code">right</code> for greater than.
</p>
+
<p class="p">
Requires 2 or more after the <code class="code">></code>.
</p>
+
<p class="p">
For example, <code class="code">if > 0 1 2 3</code> would test: <code class="code">0 > 1 && 1 > 2 && 2 > 3</code>.
</p>
+
<p class="p">
This performs only number-based comparisons.
</p>
</li>
<li>
<div><code class="code">< "left string" "right string"</code>:</div>
+
<p class="p">
Compare <code class="code">left</code> to <code class="code">right</code> for less than.
</p>
+
<p class="p">
Requires 2 or more after the <code class="code">></code>.
</p>
+
<p class="p">
For example, <code class="code">if < 0 1 2 3</code> would test: <code class="code">0 < 1 && 1 < 2 && 2 < 3</code>.
</p>
+
<p class="p">
This performs only number-based comparisons.
</p>
</li>
<li>
<div><code class="code">>= "left string" "right string"</code>:</div>
+
<p class="p">
Compare <code class="code">left</code> to <code class="code">right</code> for greater than or equal to.
</p>
+
<p class="p">
Requires 2 or more after the <code class="code">>=</code>.
</p>
+
<p class="p">
For example, <code class="code">if >= 0 1 2 3</code> would test: <code class="code">0 >= 1 && 1 >= 2 && 2 >= 3</code>.
</p>
+
<p class="p">
This performs only number-based comparisons.
</p>
</li>
<li>
<div><code class="code"><= "left string" "right string"</code>:</div>
+
<p class="p">
Compare <code class="code">left</code> to <code class="code">right</code> for less than or equal to.
</p>
+
<p class="p">
Requires 2 or more after the <code class="code">>=</code>.
</p>
+
<p class="p">
For example, <code class="code">if <= 0 1 2 3</code> would test: <code class="code">0 <= 1 && 1 <= 2 && 2 <= 3</code>.
</p>
+
<p class="p">
This performs only number-based comparisons.
</p>
</li>
<li>
<div><code class="code"><> "left" "right"</code>:</div>
+
<p class="p">
Compare all parameters to be not equal.
</p>
+
<p class="p">
Requires 2 or more after the <code class="code">==</code>.
</p>
+
<p class="p">
For example, <code class="code">if <> 'a' 'b' 'c'</code> would test: <code class="code">'a' <> 'b' && 'b' <> 'c' && 'a' <> 'c'</code>.
</p>
+
<p class="p">
This performs only string-based comparisons.
</p>
</li>
<li>
<div><code class="code">define "some define name"</code>:</div>
+
<p class="p">
Test if one or more names are defined as an environment variable.
</p>
+
<p class="p">
For example, <code class="code">if define PWD SHELL</code> would test if both the <code class="code">PWD</code> and the <code class="code">SHELL</code> variables are defined via the environment variables.
</p>
</li>
<li>
<div><code class="code">exist "file path"</code>:</div>
+
<p class="p">
Test if file exists.
</p>
+
<p class="p">
For example, <code class="code">if exist "a.txt" "b.txt"</code> would test if both the file <code class="code">a.txt</code> and <code class="code">b.txt</code> exist.
</p>
</li>
<li>
<div><code class="code">failure</code>:</div>
+
<p class="p">
Test if the previous section operation failed.
</p>
</li>
<li>
<div><code class="code">group "some mode" "some file"</code>:</div>
+
<p class="p">
For example, <code class="code">if group friends a.txt b.txt</code> would test if both file <code class="code">a.txt</code> and <code class="code">b.txt</code> have a group named <code class="code">we</code>.
</p>
</li>
<li>
<div><code class="code">is block character directory fifo link regular socket for "file path"</code>:</div>
+
<p class="p">
Test if one or more files exist and if each file is any of the given types.
</p>
+
<p class="p">
The given types must be followed by <code class="code">for</code> to designate where the the file paths begin.
</p>
+
<p class="p">
For example, <code class="code">if is regular directory for "a.txt" "b.txt"</code> would test if both the file <code class="code">a.txt</code> and <code class="code">b.txt</code> exist and are either of type <code class="code">regular</code> or type <code class="code">directory</code>.
</p>
</li>
<li>
<div><code class="code">mode is/has "some mode" "some file"</code>:</div>
+
<p class="p">
Test if one or more files has the exact mode (<code class="code">is</code>) or has at least the given modes (<code class="code">has</code>).
</p>
+
<p class="p">
For example, <code class="code">if mode is u+r a.txt b.txt</code> would test if both file <code class="code">a.txt</code> and <code class="code">b.txt</code> only have owner set to read.
</p>
+
<p class="p">
For example, <code class="code">if mode has u+r a.txt b.txt</code> would test if both file <code class="code">a.txt</code> and <code class="code">b.txt</code> has owner set to read, and all other modes can be anything.
</p>
</li>
<li>
<div><code class="code">not</code>:</div>
+
<p class="p">
Perform the test expecting a false result rather than a true result.
</p>
+
<p class="p">
This is to be immediately followed by a valid if condition as well as all appropriate valid content associated with that if condition.
</p>
+
<p class="p">
Only the following if conditions are supported:
</p>
+
<ul>
<li><code class="code">define</code>.</li>
<li><code class="code">exist</code>.</li>
<li><code class="code">owner</code>.</li>
<li><code class="code">parameter</code>.</li>
</ul>
+
<p class="p">
Examples:
</p>
+
<ul>
<li><code class="code">if not parameter work</code></li>
<li><code class="code">if not exist documentation.txt</code></li>
</li>
<li>
<div><code class="code">owner "some mode" "some file"</code>:</div>
+
<p class="p">
Test if one or more files has the given owner.
</p>
+
<p class="p">
For example, <code class="code">if owner me a.txt b.txt</code> would test if both file <code class="code">a.txt</code> and <code class="code">b.txt</code> have an owner named <code class="code">me</code>.
</p>
</li>
<li>
<div><code class="code">parameter "some parameter name"</code>:</div>
+
<p class="p">
Test if one or more names are defined as a <code class="code">parameter</code> variable.
</p>
+
<p class="p">
For example, <code class="code">if parameter verbose silent</code> would test if both the <code class="code">verbose</code> and the <code class="code">silent</code> variables are defined via the <code class="code">parameter</code> setting.
</p>
+
<p class="p">
Reserved parameters that represent program arguments, three forms are available.
</p>
+
<p class="p">
For example, the program argument -w/--work has the reserved word <code class="code">work</code> and has three forms:
</p>
+
<ol>
<li><code class="code">work</code>.</li>
<li><code class="code">work:option</code>.</li>
<li><code class="code">work:value</code>.</li>
</ol>
+
<p class="p">
In the case of form 1, the <code class="code">if parameter work</code> would be true if the argument is passed to the program or a default is provided.
</p>
+
<p class="p">
In the case of form 2, the <code class="code">if parameter work:option</code> would be true if the argument is passed to the program.
</p>
+
<p class="p">
In the case of form 3, the <code class="code">if parameter work:value</code> would be true if the argument is passed to the program and has a non-zero value.
</p>
+
<p class="p">
Some reserved parameters, such as the <code class="code">verbosity</code>, has no <code class="code">value</code> and in this case would always return false for <code class="code">if parameter verbosity:value</code>.
</p>
+
<p class="p">
The following are reserved parameters:
</p>
+
<ul>
<li><code class="code">build</code>: Associated with <code class="code">-b/--build</code> parameter.</li>
<li><code class="code">color</code>: Associated with <code class="code">+d/++dark</code>, <code class="code">+l/++light</code>, and <code class="code">+n/++no_color</code> parameters.</li>
</li>
<li>
<div><code class="code">succeed</code>:</div>
+
<ul>
<li>Test if the previous section operation succeeded.</li>
</ul>
</ul>
<li>
<div><code class="code">index</code>:</div>
+
<p class="p">
Execute the linker program, such as <code class="code">ar</code>.
</p>
+
<p class="p">
All Content are passed as arguments to the respective <code class="code">ar</code> program.
</p>
</li>
<li>
<div><code class="code">link</code>:</div>
+
<p class="p">
Create a symbolic link from some point to some target.
</p>
+
<p class="p">
The first Content, when there are more than 2 arguments, may be either <code class="code">force</code> or <code class="code">strict</code>.
</p>
+
<p class="p">
The second to last Content represents the target file.
</p>
+
<p class="p">
The last Content represents the point file.
</p>
+
<p class="p">
The <code class="code">force</code> Content designates that the point file will be overwritten if the file already exists.
</p>
+
<p class="p">
The <code class="code">strict</code> Content requires that the target file already exists.
</p>
</li>
<li>
<div><code class="code">mode</code>:</div>
+
<p class="p">
Change the mode permissions for a given file.
</p>
+
<p class="p">
The first Content represents the mode to assign.
</p>
+
<p class="p">
The second Content represents the file to assign the mode to.
</p>
</li>
<li>
<div><code class="code">modes</code>:</div>
+
<p class="p">
Identical to mode operation, except this will recursively apply the mode to all files within the given file, if that file is a directory file path.
</p>
</li>
<li>
<div><code class="code">move</code>:</div>
+
<p class="p">
Move all files (and directories) into the last content.
</p>
+
<p class="p">
If there are more than one file (or directory) being copied, then the final path must be a directory.
</p>
+
<p class="p">
All Content, except last, represents the files to move.
</p>
+
<p class="p">
The last Content represents the destination file (or directory) to move to.
</p>
</li>
<li>
<div><code class="code">operate</code>:</div>
+
<p class="p">
Begin execution of another Section.
</p>
+
<p class="p">
The first Content represents the name of the Section Object to execute.
</p>
+
<p class="p">
This may be neither the <code class="code">settings</code> Section no the <code class="code">main</code> Section.
</p>
+
<p class="p">
Recursion is prohibited, a Section that is already on the operation stack may not be called again.
</p>
+
<p class="p">
Once the operation is off the stack, it can then be called again.
</p>
</li>
<li>
<div><code class="code">or</code>:</div>
+
<p class="p">
A special type of an <code class="code">if</code> operation.
</p>
+
<p class="p">
May only be specified following a valid <code class="code">if</code>, <code class="code">and</code>, or <code class="code">or</code> operation.
</p>
+
<p class="p">
This is executed only if the previous <code class="code">if</code> operation result is false.
</p>
+
<p class="p">
When executed, this performs the test and returns true or false as appropriate.
</p>
+
<p class="p">
When not executed, this passes through the result of the previous <code class="code">if</code>, <code class="code">and</code>, or <code class="code">or</code> operation.
</p>
</li>
<li>
<div><code class="code">owner</code>:</div>
+
<p class="p">
Change the owner role for a given file.
</p>
+
<p class="p">
The first Content represents the role to assign.
</p>
+
<p class="p">
The second Content represents the file to assign the role to.
</p>
</li>
<li>
<div><code class="code">owners</code>:</div>
+
<p class="p">
Identical to owner operation, except this will recursively apply the mode to all files within the given file, if that file is a directory file path.
</p>
</li>
<li>
<div><code class="code">parameter</code>:</div>
+
<p class="p">
This represents a variable defined within the scope of the <strong class="strong">fakefile</strong>.
</p>
+
<p class="p">
This is not exported as an environment variable and is therefore not visible to any executed programs or scripts.
</p>
+
<p class="p">
This replaces the value of any existing parameter variable with this name.
</p>
+
<p class="p">
The reserved parameter variable names (see IKI vocabulary context section below) may not be changed by this.
</p>
</li>
<li>
<div><code class="code">pop</code>:</div>
+
<p class="p">
Pop a directory path of the path stack, thereby changing to the previous directory on the stack.
</p>
+
<p class="p">
This is a change directory command similar to a back button in a browser.
</p>
+
<p class="p">
This has no Content.
</p>
+
<p class="p">
This does not generate an error if the path stack is empty.
</p>
+
<p class="p">
If the directory popping to no longer exists, then an error occurs.
</p>
</li>
<li>
<div><code class="code">print</code>:</div>
+
<p class="p">
Print the content to the output screen.
</p>
+
<p class="p">
This always prints a newline at the end.
</p>
+
<p class="p">
All Content is printed, and if no Content is provided, an empty line is printed.
</p>
+
<p class="p">
The following escape sequences are supported for printing special characters:
</p>
+
<ul>
<li><code class="code">\f</code>: Form Feed.</li>
<li><code class="code">\n</code>: New Line.</li>
<li><code class="code">\U+</code>: Unicode Sequence (followed by a valid Unicode sequence with a minimum 4 hexidecimal digits and a maximum of 6 hexidecimal digits).</li>
<li><code class="code">\!</code>: Non-printing separator, allowing for <code class="code">\U+000A\!5</code> to be equivalent to <code class="code">\n5</code>.</li>
</ul>
+
<p class="p">
If the Unicode is invalid, then nothing is printed for that character (the invalid character is skipped when printing).
</p>
+
<p class="p">
Example Unicodes:
</p>
+
<ul>
<li><code class="code">\U+000A</code>: Prints a new line, equivalent to <code class="code">\n</code>.</li>
<li><code class="code">\U+2E19</code>: Prints the Unicode feather-like character <code class="code">⸙</code>.</li>
</ul>
+
<p class="p">
Only <abbr title="American Standard Code for Information Interchange">ASCII</abbr> alpha-numeric hexidecimal digits are allowed in the Unicode sequence (upper or lower case).
</p>
+
<p class="p">
Invalid or unknown escape sequences are not printed.
</p>
</li>
<li>
<div><code class="code">run</code>:</div>
+
<p class="p">
Manually execute a remote program or script.
</p>
+
<p class="p">
This program must be in the appropriate PATH environment or otherwise automatically detected when calling without a specific path to the program or script.
</p>
+
<p class="p">
The first Content represents the program or script name.
</p>
+
<p class="p">
All Content after the first are passed to the program or script when running.
</p>
+
<p class="p">
After this executes the return result is made available via the <code class="code">return</code> parameter variable name.
</p>
+
<p class="p">
Any existing value associated with <code class="code">return</code> gets replaced.
</p>
</li>
<li>
<div><code class="code">shell</code>:</div>
+
<p class="p">
Manually execute a remote program or script using a specific path to the program or script.
</p>
+
<p class="p">
This does not require the program to exist in PATH, but the path to the program or script must be relative to the project path.
</p>
+
<p class="p">
The first Content represents the program or script name.
</p>
+
<p class="p">
All Content after the first are passed to the program or script when running.
</p>
+
<p class="p">
After this executes the return result is made available via the <code class="code">return</code> parameter variable name.
</p>
+
<p class="p">
Any existing value associated with <code class="code">return</code> gets replaced.
</p>
</li>
<li>
<div><code class="code">skeleton</code>:</div>
+
<p class="p">
Run the fake skeleton operation as if <code class="code">fake skeleton</code> was run instead of <code class="code">fake make</code>.
</p>
+
<p class="p">
Command line arguments are automatically passed to the fake skeleton operation.
</p>
</li>
<li>
<div><code class="code">to</code>:</div>
+
<p class="p">
Change to the directory within the project root path tree, pushing the previous directory onto the path stack.
</p>
+
<p class="p">
The previous path is saved onto the path stack and may later be <code class="code">popped</code> off.
</p>
+
<p class="p">
The first Content represents the path to change directory into.
</p>
</li>
<li>
<div><code class="code">top</code>:</div>
+
<p class="p">
Change to the project root path, clearing the directory path stack.
</p>
+
<p class="p">
This has no Content.
</p>
+
<p class="p">
If the project root path no longer exists, then an error occurs.
</p>
</li>
<li>
<div><code class="code">touch</code>:</div>
+
<p class="p">
Manually create a new file or a directory within the project root or update its last changed timestamp if the file already exists.
</p>
+
<p class="p">
The first Content must be either <code class="code">file</code> or <code class="code">directory</code>.
</p>
+
<p class="p">
The remaining Content must be a path to the file.
</p>
</li>
<li>
<div><code class="code">write</code>:</div>
+
<p class="p">
Write strings to a file within the project root.
</p>
+
<p class="p">
The Content after the first Content is appended to the file.
</p>
+
<p class="p">
The first Content represents the file to write to.
</p>
+
<p class="p">
If there is no Content beyond the first, then the file is truncated (all content within the file is deleted).
</p>
+
<p class="p">
In all cases, if the file does not exist, the file is created.
</p>
+
<p class="p">
When only the first Content exists, this acts similar to the <code class="code">touch</code> operation.
</p>
+
<p class="p">
The major difference between the two is that the <code class="code">touch</code> operation does not alter the content within the file.
</p>
+
<p class="p">
This does alter the content within the file.
</p>
+
<p class="p">
A single space is printed between each argument.
</p>
+
<p class="p">
To preserve spaces, wrap the message in quotes (single or double).
</p>
+
<p class="p">
The following escape sequences are supported for printing special characters:
</p>
+
<ul>
<li><code class="code">\f</code>: Form Feed.</li>
<li><code class="code">\n</code>: New Line.</li>
<li><code class="code">\U+</code>: Unicode Sequence (followed by a valid Unicode sequence with a minimum 4 hexidecimal digits and a maximum of 6 hexidecimal digits).</li>
<li><code class="code">\!</code>: Non-printing separator, allowing for <code class="code">\U+000A\!5</code> to be equivalent to <code class="code">\n5</code>.</li>
</li>
+
<p class="p">
If the Unicode is invalid, then nothing is printed for that character (the invalid character is skipped when printing).
</p>
+
<p class="p">
Example Unicodes:
</p>
+
<ul>
<li><code class="code">\U+000A</code>: Prints a new line, equivalent to <code class="code">\n</code>.</li>
<li><code class="code">\U+2E19</code>: Prints the Unicode feather-like character <code class="code">⸙</code>.</li>
</ul>
+
<p class="p">
Only <abbr title="American Standard Code for Information Interchange">ASCII</abbr> alpha-numeric hexidecimal digits are allowed in the Unicode sequence (upper or lower case).
</p>
+
<p class="p">
Invalid or unknown escape sequences are not printed.
</p>
</ul>
</li>
</ul>
+
<p class="p">
The IKI vocabulary context is supported and is further clarified as follows:
</p>
+
<ul>
<li>
<div><code class="code">context</code>:</div>
+
<ul>
<li>
<div>The context Object represents a name representing simple context or complex combination of context.</div>
+
<p class="p">
Context should wrap some text such that if some text begins with some context, the context should be reset at the end.
</p>
+
<p class="p">
The most basic context is color context, such as: <code class="code">context:"notice" This is emphasized text context:"reset"</code>.
</p>
+
<p class="p">
The use of IKI in this way is acceptable but it is not perfect.
</p>
+
<p class="p">
IKI is not designed to be a replacement to markup.
</p>
+
<p class="p">
The markup <code class="code"><strong>Example</strong></code> vs the IKI <code class="code">context:"notable" Example context:"notable"</code> has obvious differences in the spaces.
</p>
+
<p class="p">
The IKI by design cannot be used like this: <code class="code">context:"notable"Examplecontext:"notable"</code> because the word <code class="code">Example</code> and the word <code class="code">context</code> collide.
</p>
+
<p class="p">
This context will respect the programs <code class="code">++light</code>, <code class="code">++dark</code>, and <code class="code">++no_color</code> parameters.
</p>
+
<p class="p">
The following context are available:
</p>
+
<ul>
<li><code class="code">error</code>: Designate as an error, often printed in red.</li>
<li><code class="code">important</code>: Designate as important.</li>
</li>
<li>
<div><code class="code">define</code>:</div>
+
<p class="p">
The define Object represents environment variables passed to the program or created by the program.
</p>
+
<p class="p">
The value represents the environment variable name and is case-sensitive.
</p>
+
<p class="p">
This IKI variable gets substituted with the environment variable's value or NULL if not defined.
</p>
+
<p class="p">
The <code class="code">settings</code> list supports declaring custom environment variables (which overwrite any existing environment variable with the same name).
</p>
</li>
<li>
<div><code class="code">parameter</code>:</div>
+
<p class="p">
The parameter Object represents a variable that is to be substituted.
</p>
+
<p class="p">
The value represents the variable name and is case-sensitive.
</p>
+
<p class="p">
This IKI variable gets substituted with the value defined in the <code class="code">settings</code> list or NULL if not defined.
</p>
+
<p class="p">
The value may contain an additional <code class="code">:option</code> or <code class="code">:value</code> at the end of the name to designate getting only part of the parameter.
</p>
+
<p class="p">
The following are reserved parameter variable names:
</p>
+
<ul>
<li>
<div><code class="code">build</code>:</div>
+
<p class="p">
This variable holds the <code class="code">build</code> program parameters, such as <code class="code">-b build/</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">color</code>:</div>
+
<p class="p">
This variable holds the color related program parameters, such as <code class="code">+n</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code> (value is always an empty string).
</p>
</li>
<li>
<div><code class="code">data</code>:</div>
+
<p class="p">
This variable holds the <code class="code">data</code> program parameters, such as <code class="code">-D data/</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">define</code>:</div>
+
<p class="p">
This variable holds the <code class="code">data</code> program parameters, such as <code class="code">-d define/</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">fakefile</code>:</div>
+
<p class="p">
This variable holds the <code class="code">fakefile</code> program parameters, such as <code class="code">-f fakefile</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">mode</code>:</div>
+
<p class="p">
This variable holds the <code class="code">fakefile</code> program parameters, such as <code class="code">-m monolithic</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">process</code>:</div>
+
<p class="p">
This variable holds the <code class="code">process</code> program parameters, such as <code class="code">-p process_name</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">return</code>:</div>
+
<p class="p">
This variable holds the return status from a previously run user-space applications, which happens with the <code class="code">run</code> and <code class="code">shell</code> section operations.
</p>
+
<p class="p">
This does not represent the return code for each line, just only those lines that run user-space applications.
</p>
</li>
<li>
<div><code class="code">settings</code>:</div>
+
<p class="p">
This variable holds the <code class="code">settings</code> program parameters, such as <code class="code">-s settings</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">sources</code>:</div>
+
<p class="p">
This variable holds the <code class="code">data</code> program parameters, such as <code class="code">-S sources/</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
</li>
<li>
<div><code class="code">verbosity</code>:</div>
+
<p class="p">
This variable holds the verbosity related program parameters, such as <code class="code">+V</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code> (value is always an empty string).
</p>
</li>
<li>
<div><code class="code">work</code>:</div>
+
<p class="p">
This variable holds the <code class="code">work</code> program parameters, such as <code class="code">-w work/</code>.
</p>
+
<p class="p">
This supports both <code class="code">:option</code> and <code class="code">:value</code>.
</p>
+
<p class="p">
An example of getting just the <code class="code">:option</code> or <code class="code">:value</code> part of a parameter for the <code class="code">work</code> parameters:
</p>
+
<ul>
<li>
- <div><code class="code">work:option</code>:</div>
+ <p class="p">
+ <code class="code">work:option</code>:
</p>
+
<p class="p">
This variable holds the option part of the <code class="code">work</code> program parameters, such as <code class="code">-w</code>.
</p>
</li>
<li>
<div><code class="code">work:value</code>:</div>
+
<p class="p">
This variable holds the value part of the <code class="code">work</code> program parameters, such as <code class="code">work/</code>.
</p>
</ul>
</li>
</ul>
+
<p class="p">
- The Content <code class="code">no_dereference</code> may be specified in certain cases relating to files.
- These cases operate on a file that can be a link itself or the link target.
+ The Content <code class="code">no_dereference</code> may be specified in certain cases relating to files.<br>
+ These cases operate on a file that can be a link itself or the link target.<br>
The default behavior is normally to dereference the link target.
</p>
+
<p class="p">
- For example, consider a symbolic link, called <code class="code">some_file</code>, that points to a file that does not exist (which means that the link in question is a broken link).
- The Operation <code class="code">if exist some_file</code> would return false.
- The Operation <code class="code">if no_dereference exist some_file</code> would return true.
- This is because the symbolic link itself, <code class="code">some_file</code>, does exist but the file it is pointing to does not.
+ For example, consider a symbolic link, called <code class="code">some_file</code>, that points to a file that does not exist (which means that the link in question is a broken link).<br>
+ The Operation <code class="code">if exist some_file</code> would return false.<br>
+ The Operation <code class="code">if no_dereference exist some_file</code> would return true.<br>
+ This is because the symbolic link itself, <code class="code">some_file</code>, does exist but the file it is pointing to does not.<br>
The <code class="code">no_dereference</code> is ignored for conditions that do not need it.
</p>
</div>
<head>
<title>Documentation - Featureless Make - Specification - Settings</title>
- <base href="../../../">
+ <base href="../../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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/settings.html">
+ <link rel="canonical" href="projects/fake/fake/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fake/fake/specifications.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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/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>
+ <a href="projects/fake/fake.html#operations" class="nav-text link">Operations</a>
</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>
+ <a href="projects/fake/fake/specifications.html" class="nav-text link">Featureless Make</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/defines.html" class="nav-text link">Defines</a>
+ <a href="projects/fake/fake/specifications/defines.html" class="nav-text link">Defines</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
+ <a href="projects/fake/fake/specifications/dependencies.html" class="nav-text link">Dependencies</a>
</div>
<div class="nav-item block">
- <a href="documentation/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
+ <a href="projects/fake/fake/specifications/fakefile.html" class="nav-text link">Fakefile</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text unlink">Settings</div>
<div class="nav-text notice">APIs</div>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fake/specifications/settings.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fake/specifications/settings.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fake/fake/specifications/settings.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fake/fake/specifications/settings.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The build settings <strong class="strong">settings</strong> file follows the <code class="code">FSS-0001 (Extended)</code> format.
</p>
+
<p class="p">
Each Object represents a settings property name.
</p>
+
<p class="p">
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.
</p>
+
<p class="p">
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>
<li><code class="code">version_nano_prefix</code>: Must be zero or more valid filename characters.</li>
<li><code class="code">version_target</code>: Must only be one of: <code class="code">major</code>, <code class="code">minor</code>, <code class="code">micro</code>, or <code class="code">nano</code>.</li>
</ul>
+
<p class="p">
All Object names support having a <code class="code">-</code> and a <code class="code">mode</code> name, such as <code class="code">build_libraries-individual</code> for a mode called <code class="code">individual</code>, except for the <code class="code">modes</code> and the <code class="code">modes_default</code> Object names.
</p>
<p class="p">
This describes intent and purposes of the build <strong class="strong">settings</strong> file settings.
</p>
+
<p class="p">
The <strong class="strong">settings</strong> file is designed for very simple compilations that represent a single named program and/or a single named library.
</p>
+
<p class="p">
For specific details on the allowed formatting, see the settings.txt under the specifications folder.
</p>
+
<ul>
<li>
<div><code class="code">build_compiler</code>:</div>
+
<p class="p">
This represents the name of the compiler program to use, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This defaults to <code class="code">gcc</code> (the GNU C Compiler).
</p>
+
<p class="p">
The programs <code class="code">gcc</code> and <code class="code">clang</code> are known to work.
</p>
+
<p class="p">
Many of the parameters in the <strong class="strong">settings</strong> file can be changed if using a non-GCC, but there may be certain hard-coded functionality that may need to be changed.
</p>
</li>
<li>
<div><code class="code">build_indexer</code>:</div>
+
<p class="p">
This represents the name of the indexer program to use, such as <code class="code">ar</code>.
</p>
+
<p class="p">
An indexer is often called a linker.
</p>
+
<p class="p">
This defaults to <code class="code">ar</code> (the GNU <code class="code">ar</code> program).
</p>
+
<p class="p">
Similar to <code class="code">build_compiler</code>, any linker that supports the <code class="code">ar</code> program parameters is effectively supported.
</p>
</li>
<li>
<div><code class="code">build_indexer_arguments</code>:</div>
+
<p class="p">
This represents arguments needed to build an archive file from object files, such as <code class="code">rcs</code>.
</p>
+
<p class="p">
These arguments are placed immediately before the object files passed to the <code class="code">indexer</code> program.
</p>
</li>
<li>
<div><code class="code">build_language</code>:</div>
+
<p class="p">
The programming language to build with.
</p>
+
<p class="p">
The languages <code class="code">c</code> and <code class="code">c++</code> are supported (with <code class="code">bash</code> as a consideration for support).
</p>
+
<p class="p">
The <code class="code">bash</code> language is not currently implemented and needs some consideration because there is nothing to compile.
</p>
+
<p class="p">
The <code class="code">bash</code> language will likely build a set of individual scripts, and perhaps script dependencies, into a single Bash script.
</p>
</li>
<li>
<div><code class="code">build_libraries</code>:</div>
+
<p class="p">
A collection of libraries to be linked against.
</p>
+
<p class="p">
This should include the compiler specific parameter parts, such as the <code class="code">-l</code> prefix in <code class="code">-lc</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
</li>
<li>
<div><code class="code">build_libraries_shared</code>:</div>
+
<p class="p">
A collection of libraries to be linked against.
</p>
+
<p class="p">
This should include the compiler specific parameter parts, such as the <code class="code">-l</code> prefix in <code class="code">-lc</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">build_libraries_static</code>:</div>
+
<p class="p">
A collection of libraries to be linked against.
</p>
+
<p class="p">
This should include the compiler specific parameter parts, such as the <code class="code">-l</code> prefix in <code class="code">-lc</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">build_objects_library</code>:</div>
+
<p class="p">
A collection of object files to be compile with when building libraries.
</p>
+
<p class="p">
These are intended to represent already compiled object files.
</p>
+
<p class="p">
These paths are relative to the <code class="code">path_object_script</code>, <code class="code">path_object_shared</code>, or <code class="code">path_object_static</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
</li>
<li>
<div><code class="code">build_objects_library_shared</code>:</div>
+
<p class="p">
A collection of object files to be compile with when building shared libraries.
</p>
+
<p class="p">
These are intended to represent already compiled object files.
</p>
+
<p class="p">
These paths are relative to the <code class="code">path_object_shared</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">build_objects_library_static</code>:</div>
+
<p class="p">
A collection of object files to be compile with when building static libraries.
</p>
+
<p class="p">
These are intended to represent already compiled object files.
</p>
+
<p class="p">
These paths are relative to the <code class="code">path_object_static</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">build_objects_program</code>:</div>
+
<p class="p">
A collection of object files to be compile with when building programs.
</p>
+
<p class="p">
These are intended to represent already compiled object files.
</p>
+
<p class="p">
These paths are relative to the <code class="code">path_object_script</code>, <code class="code">path_object_shared</code>, or <code class="code">path_object_static</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
</li>
<li>
<div><code class="code">build_objects_program_shared</code>:</div>
+
<p class="p">
A collection of object files to be compile with when building shared programs.
</p>
+
<p class="p">
These are intended to represent already compiled object files.
</p>
+
<p class="p">
These paths are relative to the <code class="code">path_object_shared</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">build_objects_program_static</code>:</div>
+
<p class="p">
A collection of object files to be compile with when building static programs.
</p>
+
<p class="p">
These are intended to represent already compiled object files.
</p>
+
<p class="p">
These paths are relative to the <code class="code">path_object_static</code>.
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">build_name</code>:</div>
+
<p class="p">
The name of the build, which often represent the project name.
</p>
+
<p class="p">
If program sources are specified, then this will be used as the program name.
</p>
+
<p class="p">
If library sources are specified, then this will be used in the library name, such as <code class="code">libX.so</code> where <code class="code">X</code> would be the <code class="code">build_name</code> value.
</p>
</li>
<li>
<div><code class="code">build_script</code>:</div>
+
<p class="p">
When <code class="code">yes</code>, the build process will build any scripts, such as a Bash script.
</p>
+
<p class="p">
This is currently not implemented.
</p>
</li>
<li>
<div><code class="code">build_shared</code>:</div>
+
<p class="p">
When <code class="code">yes</code>, the build process will compile any source code for any supported language that supports shared library linking.
</p>
</li>
<li>
<div><code class="code">build_sources_headers</code>:</div>
+
<p class="p">
A collection of header files.
</p>
+
<p class="p">
May include a relative sub-path to each individual header (such as: <code class="code">level_0/a.h level_0/b.h level_1/c.h</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
</li>
<li>
<div><code class="code">build_sources_headers_shared</code>:</div>
+
<p class="p">
A collection of header files.
</p>
+
<p class="p">
May include a relative sub-path to each individual header (such as: <code class="code">level_0/a.h level_0/b.h level_1/c.h</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
Be careful not to have any conflicting names between this and build_sources_headers_static in case of when static and shared builds are both enabled.
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">build_sources_headers_static</code>:</div>
+
<p class="p">
A collection of header files.
</p>
+
<p class="p">
May include a relative sub-path to each individual header (such as: <code class="code">level_0/a.h level_0/b.h level_1/c.h</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These files are used when compiling the library.
</p>
+
<p class="p">
Be careful not to have any conflicting names between this and build_sources_headers_shared in case of when static and shared builds are both enabled.
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">build_sources_library</code>:</div>
+
<p class="p">
A collection of library related source files.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c level_0/b.c level_1/c.c</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
</li>
<li>
<div><code class="code">build_sources_library_shared</code>:</div>
+
<p class="p">
A collection of library related source files.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c level_0/b.c level_1/c.c</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">build_sources_library_static</code>:</div>
+
<p class="p">
A collection of library related source files.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c level_0/b.c level_1/c.c</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">build_sources_object</code>:</div>
+
<p class="p">
A single source file used for generating an object file.
</p>
+
<p class="p">
The source file is located within the path designated by <code class="code">path_sources_object</code>.
</p>
+
<p class="p">
The built object does not get linked and therefore no linker arguments apply.
</p>
+
<p class="p">
The built object file is named using the <code class="code">build_name</code> with the <code class="code">.o</code> extension.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c</code>).
</p>
</li>
<li>
<div><code class="code">build_sources_object_shared</code>:</div>
+
<p class="p">
A single source file used for generating an object file.
</p>
+
<p class="p">
The source file is located within the path designated by <code class="code">path_sources_object</code>.
</p>
+
<p class="p">
The built object does not get linked and therefore no linker arguments apply.
</p>
+
<p class="p">
The built object file is named using the <code class="code">build_name</code> with the <code class="code">.o</code> extension.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c</code>).
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">build_sources_object_static</code>:</div>
+
<p class="p">
A single source file used for generating an object file.
</p>
+
<p class="p">
The source file is located within the path designated by <code class="code">path_sources_object</code>.
</p>
+
<p class="p">
The built object does not get linked and therefore no linker arguments apply.
</p>
+
<p class="p">
The built object file is named using the <code class="code">build_name</code> with the <code class="code">.o</code> extension.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c</code>).
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">build_sources_program</code>:</div>
+
<p class="p">
A collection of program related source files.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c level_0/b.c level_1/c.c</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These files are used when compiling the program.
</p>
</li>
<li>
<div><code class="code">build_sources_program_shared</code>:</div>
+
<p class="p">
A collection of program related source files.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c level_0/b.c level_1/c.c</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These files are used when compiling the program for shared builds.
</p>
</li>
<li>
<div><code class="code">build_sources_program_static</code>:</div>
+
<p class="p">
A collection of program related source files.
</p>
+
<p class="p">
May include a relative sub-path to each individual source file (such as: <code class="code">level_0/a.c level_0/b.c level_1/c.c</code>).
</p>
+
<p class="p">
The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive.
</p>
+
<p class="p">
These files are used when compiling the program for static builds.
</p>
</li>
<li>
<div><code class="code">build_sources_script</code>:</div>
+
<p class="p">
A collection of script files.
</p>
+
<p class="p">
These are settings files used by the project and are simply copied over to the build directory.
</p>
+
<p class="p">
Unless a pre-process script (or in theory post-process script) is configured to alter these, they are not modified.
</p>
+
<p class="p">
Unlike the <code class="code">compile_language</code> setting <code class="code">bash</code>, this is not for built Bash script, but is instead for any valid scripting language (including Bash).
</p>
+
<p class="p">
These could be in any language.
</p>
</li>
<li>
<div><code class="code">build_sources_setting</code>:</div>
+
<p class="p">
A collection of settings files.
</p>
+
<p class="p">
These are settings files used by the project and are simply copied over to the build directory.
</p>
+
<p class="p">
Unless a pre-process script (or in theory post-process script) is configured to alter these, they are not modified.
</p>
</li>
<li>
<div><code class="code">build_static</code>:</div>
+
<p class="p">
When <code class="code">yes</code>, the build process will compile any source code for any supported language that supports static library linking.
</p>
</li>
<li>
<div><code class="code">defines</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to both shared and static builds.
</p>
</li>
<li>
<div><code class="code">defines_library</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only library builds.
</p>
</li>
<li>
<div><code class="code">defines_library_shared</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only shared library builds.
</p>
</li>
<li>
<div><code class="code">defines_library_static</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only static library builds.
</p>
</li>
<li>
<div><code class="code">defines_object</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only object builds.
</p>
</li>
<li>
<div><code class="code">defines_object_shared</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only shared object builds.
</p>
</li>
<li>
<div><code class="code">defines_object_static</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only static object builds.
</p>
</li>
<li>
<div><code class="code">defines_program</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only program builds.
</p>
</li>
<li>
<div><code class="code">defines_program_shared</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only shared program builds.
</p>
</li>
<li>
<div><code class="code">defines_program_static</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only shared program builds.
</p>
</li>
<li>
<div><code class="code">defines_shared</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">defines_static</code>:</div>
+
<p class="p">
A collection of macro names.
</p>
+
<p class="p">
This includes the any compiler specific parameters required by the <code class="code">build_compiler</code>, such as the <code class="code">-D</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These will be appended to the compiler for compiled languages such as <code class="code">C</code> and <code class="code">C++</code>.
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">environment</code>:</div>
+
<p class="p">
A collection of environment names to pass from the callers environment into the executed programs environment.
</p>
+
<p class="p">
When provided, all environment variables are removed when calling user-space programs, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
To remove all environment variables define this with no Content.
</p>
+
<p class="p">
When not provided, all environment variables are loaded.
</p>
</li>
<li>
<div><code class="code">flags</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to both shared and static builds.
</p>
</li>
<li>
<div><code class="code">flags_library</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied when building a library.
</p>
</li>
<li>
<div><code class="code">flags_library_shared</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only library shared builds.
</p>
<li>
<div><code class="code">flags_library_static</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only library static builds.
</p>
</li>
<li>
<div><code class="code">flags_object</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied when building an object.
</p>
</li>
<li>
<div><code class="code">flags_object_shared</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only object shared builds.
</p>
</li>
<li>
<div><code class="code">flags_object_static</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only object static builds.
</p>
</li>
<li>
<div><code class="code">flags_program</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied when building a program.
</p>
</li>
<li>
<div><code class="code">flags_program_shared</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only program shared builds.
</p>
</li>
<li>
<div><code class="code">flags_program_static</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only program static builds.
</p>
</li>
<li>
<div><code class="code">flags_shared</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only shared builds.
</p>
</li>
<li>
<div><code class="code">flags_static</code>:</div>
+
<p class="p">
A collection of any flag supported by the <code class="code">build_compiler</code>, such as <code class="code">gcc</code>.
</p>
+
<p class="p">
This includes the any compiler specific parameters to defined this, such as the <code class="code">-f</code> used by <code class="code">gcc</code> and <code class="code">clang</code>.
</p>
+
<p class="p">
These are applied to only static builds.
</p>
</li>
<li>
<div><code class="code">has_path_standard</code>:</div>
+
<p class="p">
When <code class="code">yes</code>, the sources path will be built using the sources path with the language, such as <code class="code">sources/c/</code>.
</p>
+
<p class="p">
When <code class="code">no</code>, the default sources path structure is not used and instead <code class="code">path_sources</code> is used.
</p>
+
<p class="p">
When the parameter <code class="code">-S/--sources</code> is specified, such as <code class="code">-S xxx</code>, then when this is set to <code class="code">yes</code> is used then the path would be <code class="code">xxx/c/</code> and when this is set to <code class="code">no</code> then the path would be <code class="code">xxx/</code>.
</p>
+
<p class="p">
This defaults to <code class="code">yes</code>.
</p>
</li>
<li>
<div><code class="code">modes</code>:</div>
- </p>
+
<p class="p">
A collection of available build modes.
</p>
+
<p class="p">
Build modes provide custom variants of the build process where certain settings are appended onto others.
</p>
+
<p class="p">
See the settings.txt specification for a list of which setting names this applies to.
</p>
</li>
<li>
<div><code class="code">modes_default</code>:</div>
+
<p class="p">
The name of the default mode to use when no mode is specified.
</p>
+
<p class="p">
This must be one of the modes specified in the <code class="code">modes</code> setting.
</p>
</li>
<li>
<div><code class="code">path_headers</code>:</div>
- </p>
+
<p class="p">
A sub-path in which headers are to be installed under.
</p>
+
<p class="p">
For example, the <abbr title="Featureless Linux Library">FLL</abbr> project might use the <code class="code">level_0</code>, <code class="code">level_1</code>, etc.. headers without requiring that structure within the source.
</p>
+
<p class="p">
A resulting build destination for a <code class="code">path_headers</code> of <code class="code">level_0</code> would be something like <code class="code">build/includes/level_0/</code>.
</p>
+
<p class="p">
If <code class="code">path_headers</code> is <code class="code">level_0</code>, <code class="code">preserve_path_headers</code> is <code class="code">yes</code>, and <code class="code">build_sources_headers</code> has <code class="code">xxx/a.h yyy/zzz/b.h</code>, then the headers would be at: <code class="code">build/includes/level_0/xxx/a.h build/includes/level_0/yyy/zzz/b.h</code>
</p>
</li>
<li>
<div><code class="code">path_language</code>:</div>
+
<p class="p">
A sub-path in which to find the source files for the currently defined language.
</p>
+
<p class="p">
If the <code class="code">build_language</code> is changed, it is recommended to change this as well to match.
</p>
</li>
<li>
<div><code class="code">path_library_script</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built library script files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">script</code>.
</p>
+
<p class="p">
This is currently not implemented.
</p>
</li>
<li>
<div><code class="code">path_library_shared</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built shared library files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">shared</code>.
</p>
</li>
<li>
<div><code class="code">path_library_static</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built shared library files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">static</code>.
</p>
</li>
<li>
<div><code class="code">path_object_script</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built object script files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">script</code>.
</p>
+
<p class="p">
This is currently not implemented.
</p>
</li>
<li>
<div><code class="code">path_object_shared</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built object library files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">shared</code>.
</p>
</li>
<li>
<div><code class="code">path_object_static</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built object library files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">static</code>.
</p>
</li>
<li>
<div><code class="code">path_program_script</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built program script files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">script</code>.
</p>
+
<p class="p">
This is currently not implemented.
</p>
</li>
<li>
<div><code class="code">path_program_shared</code>:</div>
+
<p class="p">
A sub-path representing the destination where the built shared program files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">shared</code>.
</p>
</li>
<li>
<div><code class="code">path_program_static</code>:</div>
- </p>
+
<p class="p">
A sub-path representing the destination where built shared program files are placed.
</p>
+
<p class="p">
This defaults to <code class="code">static</code>.
</p>
</li>
<li>
<div><code class="code">path_sources</code>:</div>
+
<p class="p">
A sub-path representing where the source files are found.
</p>
+
<p class="p">
This defaults to <code class="code">sources</code>.
</p>
</li>
<li>
<div><code class="code">path_sources_object</code>:</div>
+
<p class="p">
A sub-path representing where the object source files are found.
</p>
+
<p class="p">
This is used by <code class="code">build_sources_object</code>.
</p>
+
<p class="p">
This defaults to <code class="code">sources</code>.
</p>
</li>
<li>
<div><code class="code">preserve_path_headers</code>:</div>
+
<p class="p">
When this is <code class="code">yes</code>, then the relative directory structure in the source (as defined in <code class="code">build_sources_headers</code>) is preserved.
</p>
+
<p class="p">
If the <code class="code">build_sources_headers</code> has the header files <code class="code">xxx/a.h yyy/zzz/b.h</code> and this is <code class="code">yes</code>, then the directories <code class="code">xxx/</code> and <code class="code">yyy/zzz/</code> are created and the files are stored within them.
</p>
+
<p class="p">
If the <code class="code">build_sources_headers</code> has the header files <code class="code">xxx/a.h yyy/zzz/b.h</code> and this is <code class="code">no</code>, then the directories <code class="code">xxx/</code> and <code class="code">yyy/zzz/</code> are stripped before installing.
</p>
+
<p class="p">
When this is <code class="code">no</code> and the <code class="code">build_sources_headers</code> has header files <code class="code">xxx/a.h yyy/a.h</code>, then one of the <code class="code">a.h</code> files will be overwritten, depending on order they were supplied.
</p>
</li>
<li>
<div><code class="code">process_post</code>:</div>
+
<p class="p">
The filename (relative to the <code class="code">data/build/</code> directory) of a script to execute after the <code class="code">build</code> operation successfully completes.
</p>
+
<p class="p">
A small subset of parameters from the main execution are passed to this script during execution as parameters (using short parameter codes):
</p>
+
<ul>
<li>Color context parameters, such as: <code class="code">+l</code>, <code class="code">+n</code>, and <code class="code">+d</code>.</li>
<li>Operation mode, such as: <code class="code">build</code>, <code class="code">clean</code>, <code class="code">make</code>, or <code class="code">skeleton</code>.</li>
</li>
<li>
<div><code class="code">process_pre</code>:</div>
+
<p class="p">
The filename (relative to the <code class="code">data/build/</code> directory) of a script to execute before the <code class="code">build</code> operation is executed.
</p>
+
<p class="p">
A small subset of parameters from the main execution are passed to this script during execution as parameters (using short parameter codes):
</p>
+
<ul>
<li>Color context parameters, such as: <code class="code">+l</code>, <code class="code">+n</code>, and <code class="code">+d</code>.</li>
<li>Operation mode, such as: <code class="code">build</code>, <code class="code">clean</code>, <code class="code">make</code>, or <code class="code">skeleton</code>.</li>
</li>
<li>
<div><code class="code">search_exclusive</code>:</div>
+
<p class="p">
When <code class="code">yes</code>, the search path during compile for shared libraries will only include shared library paths.
</p>
+
<p class="p">
When <code class="code">no</code>, the search path during compile time for shared libraries will include shared library paths followed by static library paths.
</p>
+
<p class="p">
Setting this to <code class="code">yes</code> helps prevent static libraries from ending up in shared libraries (very useful when bootstrapping a system).
</p>
+
<p class="p">
Setting this to <code class="code">no</code> allows for including static libraries if no shared libraries are found but static are.
</p>
+
<p class="p">
This does not alter search paths introduced automatically by the <code class="code">build_compiler</code> or <code class="code">build_indexer</code>, so it is still possible for static libraries to end up even when this is set to <code class="code">yes</code>.
</p>
</li>
<li>
<div><code class="code">search_shared</code>:</div>
+
<p class="p">
When <code class="code">yes</code>, shared library paths are searched during compile.
</p>
+
<p class="p">
Both this and <code class="code">search_static</code> cannot be <code class="code">no</code> at the same time.
</p>
+
<p class="p">
This defaults to <code class="code">yes</code>.
</p>
</li>
<li>
<div><code class="code">search_shared</code>:</div>
+
<p class="p">
When <code class="code">yes</code>, static library paths are searched during compile.
</p>
+
<p class="p">
Both this and search_shared cannot be <code class="code">no</code> at the same time.
</p>
</li>
<li>
<div><code class="code">stage</code>:</div>
+
<p class="p">
This defines a name that is added to the build stage files to help uniquely identify build stages associated with this file.
</p>
+
<p class="p">
This name must only have valid characters for a particular file system.
</p>
+
<p class="p">
The variables allowed are different from file system to file system and so special characters should generally be avoided.
</p>
+
<p class="p">
To help prevent problems with paths, slashes (forward slash and backward slash) are not allowed in the stage name.
</p>
</li>
<li>
<div><code class="code">version_file</code>:</div>
+
<p class="p">
Designates which version should be used when building the symbolic links.
</p>
+
<p class="p">
Any version prefixes are used as defined.
</p>
+
<p class="p">
A Symbolic link is created against this created file such that <code class="code">libX.so</code> is a link to <code class="code">libX.so.A</code>.
</p>
+
<p class="p">
For all files other than when file is <code class="code">major</code>, another symbolic link is created against this such that <code class="code">libX.so.A</code> is a link to <code class="code">libX.so.A.X</code> such that X is the respective <code class="code">B</code>, <code class="code">B.C', or code:</code>B.C.D" as described below.
</p>
+
<p class="p">
The default file is <code class="code">major</code>.
</p>
+
<p class="p">
When <code class="code">major</code> is used, the file created is <code class="code">libX.so.A</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A</code> is the major version.
</p>
+
<p class="p">
When <code class="code">minor</code> is used, the file created is <code class="code">libX.so.A.B</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A.B</code> is the major and minor versions, respectively.
</p>
+
<p class="p">
When <code class="code">micro</code> is used, the file created is <code class="code">libX.so.A.B.C</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A.B.C</code> is the major, minor, and micro versions, respectively.
</p>
+
<p class="p">
When <code class="code">nano</code> is used, the file created is <code class="code">libX.so.A.B.C.D</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A.B.C.D</code> is the major, minor, micro, and nano versions, respectively.
</p>
</li>
<li>
<div><code class="code">version_major</code>:</div>
+
<p class="p">
The major version number (or in theory any characters allowed in a filename).
</p>
+
<p class="p">
This should generally be a positive number or 0.
</p>
+
<p class="p">
Anything else is currently untested but allowed.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C</code>, the major version would be the <code class="code">A</code>.
</p>
</li>
<li>
<div><code class="code">version_major_prefix</code>:</div>
+
<p class="p">
The version major prefix is the character used to designate the start of the major version.
</p>
+
<p class="p">
This can zero or more characters.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C</code>, the major version prefix would be before the <code class="code">A</code>.
</p>
+
<p class="p">
This is only added if <code class="code">version_major</code> is not empty.
</p>
+
<p class="p">
This defaults to the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> period character <code class="code">.</code>.
</p>
</li>
<li>
<div><code class="code">version_minor</code>:</div>
+
<p class="p">
The minor version number (or in theory any characters allowed in a filename).
</p>
+
<p class="p">
This should generally be a positive number or 0.
</p>
+
<p class="p">
Anything else is currently untested but allowed.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C</code>, the minor version would be the <code class="code">B</code>.
</p>
</li>
<li>
<div><code class="code">version_minor_prefix</code>:</div>
+
<p class="p">
The version minor prefix is the character used to separate the major from the minor.
</p>
+
<p class="p">
This can zero or more characters.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C</code>, the minor version prefix would be the <code class="code">.</code> before the <code class="code">B</code>.
</p>
+
<p class="p">
This is only added if <code class="code">version_minor</code> is not empty.
</p>
+
<p class="p">
This defaults to the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> period character <code class="code">.</code>.
</p>
</li>
<li>
<div><code class="code">version_micro</code>:</div>
+
<p class="p">
The micro version number (or in theory any characters allowed in a filename).
</p>
+
<p class="p">
This should generally be a positive number or 0.
</p>
+
<p class="p">
Anything else is currently untested but allowed.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C</code>, the micro version would be the <code class="code">C</code>.
</p>
</li>
<li>
<div><code class="code">version_micro_prefix</code>:</div>
+
<p class="p">
The version micro prefix is the character used to separate the minor from the micro.
</p>
+
<p class="p">
This can zero or more characters.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C</code>, the micro version prefix would be the <code class="code">.</code> before the <code class="code">C</code>.
</p>
+
<p class="p">
This is only added if <code class="code">version_micro</code> is not empty.
</p>
+
<p class="p">
This defaults to the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> period character <code class="code">.</code>.
</p>
</li>
<li>
<div><code class="code">version_nano</code>:</div>
+
<p class="p">
The nano version number (or in theory any characters allowed in a filename).
</p>
+
<p class="p">
This should generally be a positive number or 0.
</p>
+
<p class="p">
Anything else is currently untested but allowed.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C.D</code>, the micro version prefix would be the <code class="code">.</code> before the <code class="code">D</code>.
</p>
</li>
<li>
<div><code class="code">version_nano_prefix</code>:</div>
+
<p class="p">
The version nano prefix is the character used to separate the micro from the nano.
</p>
+
<p class="p">
This can zero or more characters.
</p>
+
<p class="p">
With a structure of <code class="code">A.B.C.D</code>, the minor version would be the <code class="code">.</code> before the <code class="code">D</code>.
</p>
+
<p class="p">
This is only added if <code class="code">version_nano</code> is not empty.
</p>
+
<p class="p">
This defaults to the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> period character <code class="code">.</code>.
</p>
</li>
<li>
<div><code class="code">version_target</code>:</div>
+
<p class="p">
Designates which version should be used when linking the shared library.
</p>
+
<p class="p">
Any version prefixes are used as defined.
</p>
+
<p class="p">
The default target is <code class="code">micro</code>.
</p>
+
<p class="p">
When <code class="code">major</code> is used, a shared library is generated with <code class="code">-Wl,-soname,libX.so.A</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A</code> is the major version.
</p>
+
<p class="p">
When <code class="code">minor</code> is used, a shared library is generated with <code class="code">-Wl,-soname,libX.so.A.B</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A.B</code> is the major and minor versions, respectively.
</p>
+
<p class="p">
When <code class="code">micro</code> is used, a shared library is generated with <code class="code">-Wl,-soname,libX.so.A.B.C</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A.B.C</code> is the major, minor, and micro versions, respectively.
</p>
+
<p class="p">
When <code class="code">nano</code> is used, a shared library is generated with <code class="code">-Wl,-soname,libX.so.A.B.C.D</code>, whereas <code class="code">X</code> is the <code class="code">build_name</code> and <code class="code">A.B.C.D</code> is the major, minor, micro, and nano versions, respectively.
</p>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - (Kevux) Firewall</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux firewall project.">
+ <meta name="keywords" content="Featureless, Firewall, FLL, Kevin Day, Kevux, Linux, Library, Iptables, Open-Source, Project">
+ <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="projects/firewall.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">(Kevux) Firewall</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/firewall/firewall.html" class="nav-text link">firewall</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/firewall.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/firewall.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">Project: (Kevux) Firewall</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">(Kevux) Firewall</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/firewall/firewall.html" class="link"><code class="code">firewall</code></a></div>
+ <ol>
+ <li><a href="projects/firewall/firewall.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/firewall/firewall.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/firewall/firewall/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<!DOCTYPE html>
<html lang="en">
<head>
- <title>Documentation - Kevux Firewall</title>
+ <title>Documentation - (Kevux) Firewall</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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/kevux_firewall.html">
+ <link rel="canonical" href="projects/firewall/firewall.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/firewall.html" class="nav-text link back">Back</a>
</div>
<div class="nav-item block highlight unlink">
<div class="nav-text notice">Documentation</div>
- <div class="nav-text unlink">Kevux Firewall</div>
+ <div class="nav-text unlink">(Kevux) Firewall</div>
</div>
<div class="nav-item block">
- <a href="documentation/kevux_firewall.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/firewall/firewall.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
- <a href="documentation/kevux_firewall.html#parameters-program" class="nav-text link">Program Parameters</a>
+ <a href="projects/firewall/firewall.html#parameters-program" class="nav-text link">Program Parameters</a>
</div>
<div class="nav-item block">
- <a href="documentation/kevux_firewall.html#commands" class="nav-text link">Commands</a>
+ <a href="projects/firewall/firewall.html#commands" class="nav-text link">Commands</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">Specifications</div>
- <a href="documentation/kevux_firewall/specifications.html" class="nav-text link">Kevux Firewall</a>
+ <a href="projects/firewall/firewall/specifications.html" class="nav-text link">(Kevux) Firewall</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/kevux_firewall.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/kevux_firewall.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/firewall/firewall.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/firewall/firewall.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">Kevux Firewall Documentation</h1>
+ <h1 class="section-title h h1">(Kevux) Firewall Documentation</h1>
</header>
<div class="main-content">
<p class="p">
- The <strong class="strong">Kevux Firewall</strong> program, called <code class="code">firewall</code>, is a tool for simplifying and automating the <code class="code">iptables</code> program.
+ The <strong class="strong">(Kevux) Firewall</strong> program, called <code class="code">firewall</code>, is a tool for simplifying and automating the <code class="code">iptables</code> program.
</p>
+
<p class="p">
There are plans for making major changes to ths tool now that the <strong class="strong">iptables</strong> program is outdated. The latest <strong class="strong">iptables</strong> program replacement (the <strong class="strong">nftables</strong> program) is superior and the <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - (Kevux) Firewall - Specifications</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux 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="projects/firewall/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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/firewall/firewall.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="projects/firewall/firewall.html" class="nav-text link">(Kevux) Firewall</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/firewall/firewall.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/firewall/firewall.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/firewall/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">(Kevux) Firewall</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/firewall/firewall/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/firewall/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">(Kevux) 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>.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">(Kevux) Firewall</strong> follows the following specifications:
+ </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>
+ </ul>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - FSS Identify</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Identify project.">
+ <meta name="keywords" content="FLL, FSS, FSS Identify, Featureless, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/fss_identify/fss_identify.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">FSS Identify</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/fss_identify/fss_identify.html" class="nav-text link">fss_identify</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fss_identify.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_identify.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">Project: FSS Identify</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">FSS Identify</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/fss_identify/fss_identify.html" class="link"><code class="code">fss_identify</code></a></div>
+ <ol>
+ <li><a href="projects/fss_identify/fss_identify.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_identify/fss_identify.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_identify/fss_identify/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - FSS Identify</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_identify/fss_identify.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_identify.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_identify/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>
+ <a href="projects/fss_identify/fss_identify.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_identify/fss_identify/specifications.html" class="nav-text link">FSS Identify</a>
</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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_identify.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_identify/fss_identify.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_identify/fss_identify.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
The <code class="code">--line</code> parameter refers to the file lines and not the lines in a given file.
</p>
+
<p class="p">
If neither the <code class="code">--object</code> nor <code class="code">--content</code> are specified, then the default behavior is to print both.
</p>
+
<p class="p">
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.<br>
+ This identifier, if provided, must exist on the first line in a file and must begin with the pound character: "<code class="code">#</code>".<br>
+ White space must follow this pound character.<br>
+ 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>
<head>
<title>Documentation - FSS Identify - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_identify/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_identify/fss_identify.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>
+ <a href="projects/fss_identify/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>
+ <a href="projects/fss_identify/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>
+ <a href="projects/fss_identify/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 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>
+ <a href="projects/fss_identify/fss_identify/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_identify/fss_identify/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Identify</strong> does not directly use or provide any of these specifications.
+ The <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.<br>
+ The <strong class="strong">FSS Identify</strong> does not provide any of these specifications.
</p>
</div>
</main>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - FSS Basic Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Read project.">
+ <meta name="keywords" content="Featureless, FLL, FSS Basic List Read, FSS Basic Read, FSS Embedded Read, FSS, FSS Extended List Read, FSS Extended Read, FSS Read, FSS Payload Read, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/fss_read.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">FSS Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/fss_read/fss_basic_list_read.html" class="nav-text link">fss_basic_list_read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_basic_read.html" class="nav-text link">fss_basic_read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_embedded_list_read.html" class="nav-text link">fss_embedded_list_read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_extended_list_read.html" class="nav-text link">fss_extended_list_read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_extended_read.html" class="nav-text link">fss_extended_read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_payload_read.html" class="nav-text link">fss_payload_read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_read.html" class="nav-text link">fss_read</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fss_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read.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">Project: FSS Read</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">FSS Read</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/fss_read/fss_basic_list_read.html" class="link"><code class="code">fss_basic_list_read</code></a></div>
+ <ol>
+ <li><a href="projects/fss_read/fss_basic_list_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_read/fss_basic_list_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_read/fss_basic_list_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_read/fss_basic_read.html" class="link"><code class="code">fss_basic_read</code></a></div>
+ <ol>
+ <li><a href="projects/fss_read/fss_basic_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_read/fss_basic_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_read/fss_basic_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_read/fss_embedded_list_read.html" class="link"><code class="code">fss_embedded_list_read</code></a></div>
+ <ol>
+ <li><a href="projects/fss_read/fss_embedded_list_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_read/fss_embedded_list_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_read/fss_embedded_list_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_read/fss_extended_list_read.html" class="link"><code class="code">fss_extended_list_read</code></a></div>
+ <ol>
+ <li><a href="projects/fss_read/fss_extended_list_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_read/fss_extended_list_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_read/fss_extended_list_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_read/fss_extended_read.html" class="link"><code class="code">fss_extended_read</code></a></div>
+ <ol>
+ <li><a href="projects/fss_read/fss_extended_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_read/fss_extended_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_read/fss_extended_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_read/fss_read.html" class="link"><code class="code">fss_read</code></a></div>
+ <ol>
+ <li><a href="projects/fss_read/fss_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_read/fss_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_read/fss_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - FSS Basic List Read</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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_read.html">
+ <link rel="canonical" href="projects/fss_read/fss_basic_list_read.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_read/fss_basic_list_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
- <a href="documentation/fss_basic_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ <a href="projects/fss_read/fss_basic_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_read/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_basic_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_basic_list_read.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_read/fss_basic_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_basic_list_read.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
All numeric positions (indexes) start at 0 instead of 1.
</p>
+
<p class="p">
For example, a file of 17 lines would range from 0 to 16.
</p>
+
<p class="p">
When using the <code class="code">--depth</code> option, an order of operations is enforced on the parameters.
</p>
+
<p class="p">
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt"><code class="code">--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code">--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code"><code class="code">--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
</div>
</dl>
+
<p class="p">
The parameter <code class="code">--depth</code> must be in numeric order, but values in between may be skipped.
</p>
+
<ul>
<li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
<li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
</ul>
+
<p class="p">
The parameter <code class="code">--select</code> selects a Content column.
</p>
+
<p class="p">
Specify both <code class="code">--object</code> and the --total parameters to get the total objects.
</p>
+
<p class="p">
When both <code class="code">--at</code> and <code class="code">--name</code> parameters are specified (at the same depth), the <code class="code">--at</code> parameter value will be treated as a position relative to the specified <code class="code">--name</code> parameter value.
</p>
+
<p class="p">
This program may support parameters, such as <code class="code">--depth</code> or <code class="code">--select</code>, even if not supported by the standard.
</p>
+
<p class="p">
This is done to help ensure consistency for scripting.
</p>
+
<p class="p">
For parameters like <code class="code">--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
</p>
+
<p class="p">
For parameters like <code class="code">--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
</p>
+
<p class="p">
The parameter <code class="code">--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
</p>
+
<p class="p">
When specifying both the <code class="code">--object</code> parameter and the <code class="code">--content</code> parameter, the entire Object and Content are printed, including the formatting.
</p>
+
<p class="p">
Both the Object and Content printed are already escaped.
</p>
+
<p class="p">
Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
</p>
+
<p class="p">
The parameter <code class="code">--delimit</code> accepts the following:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
</div>
</dl>
+
<p class="p">
The <code class="code">--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
</p>
+
<p class="p">
The <code class="code">--delimit</code> values none and all, overrule all other delimit values.
</p>
+
<p class="p">
The parameters <code class="code">--columns</code> and <code class="code">--select</code> refer to a Content column.
</p>
+
<p class="p">
The word "<em class="em">column</em>" is being loosely defined to refer to a specific Content.
</p>
+
<p class="p">
This is not to be confused with a depth.
</p>
<head>
<title>Documentation - FSS Basic List Read - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_read/fss_basic_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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read/fss_basic_list_read.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>
+ <a href="projects/fss_read/fss_basic_list_read.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>
+ <a href="projects/fss_read/fss_basic_list_read.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>
+ <a href="projects/fss_read/fss_basic_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 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>
+ <a href="projects/fss_read/fss_basic_list_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_basic_list_read/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Basic List Read</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Basic List Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0002.html" class="link">FSS-0002 (Basic List)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Basic Read</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_read/fss_basic_read.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/fss_basic_read.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_read/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_basic_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_basic_read.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_read/fss_basic_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_basic_read.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
All numeric positions (indexes) start at 0 instead of 1.
</p>
+
<p class="p">
For example, a file of 17 lines would range from 0 to 16.
</p>
+
<p class="p">
When using the <code class="code">--depth</code> option, an order of operations is enforced on the parameters.
</p>
+
<p class="p">
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt"><code class="code">--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code">--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code"><code class="code">--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
</div>
</dl>
+
<p class="p">
The parameter <code class="code">--depth</code> must be in numeric order, but values in between may be skipped.
</p>
+
<ul>
<li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
<li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
</ul>
+
<p class="p">
The parameter <code class="code">--select</code> selects a Content column.
</p>
+
<p class="p">
Specify both <code class="code">--object</code> and the --total parameters to get the total objects.
</p>
+
<p class="p">
When both <code class="code">--at</code> and <code class="code">--name</code> parameters are specified (at the same depth), the <code class="code">--at</code> parameter value will be treated as a position relative to the specified <code class="code">--name</code> parameter value.
</p>
+
<p class="p">
This program may support parameters, such as <code class="code">--depth</code> or <code class="code">--select</code>, even if not supported by the standard.
</p>
+
<p class="p">
This is done to help ensure consistency for scripting.
</p>
+
<p class="p">
For parameters like <code class="code">--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
</p>
+
<p class="p">
For parameters like <code class="code">--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
</p>
+
<p class="p">
The parameter <code class="code">--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
</p>
+
<p class="p">
When specifying both the <code class="code">--object</code> parameter and the <code class="code">--content</code> parameter, the entire Object and Content are printed, including the formatting.
</p>
+
<p class="p">
Both the Object and Content printed are already escaped.
</p>
+
<p class="p">
Both the Object and Content are separated by a space.
</p>
+
<p class="p">
The parameter <code class="code">--delimit</code> accepts the following:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
</div>
</dl>
+
<p class="p">
The <code class="code">--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
</p>
+
<p class="p">
The <code class="code">--delimit</code> values none and all, overrule all other delimit values.
</p>
+
<p class="p">
The parameters <code class="code">--columns</code> and <code class="code">--select</code> refer to a Content column.
</p>
+
<p class="p">
The word "<em class="em">column</em>" is being loosely defined to refer to a specific Content.
</p>
+
<p class="p">
This is not to be confused with a depth.
</p>
<head>
<title>Documentation - FSS Basic Read - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_read/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read/fss_basic_read.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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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 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>
+ <a href="projects/fss_read/fss_basic_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_basic_read/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Basic Read</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Basic Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0000.html" class="link">FSS-0000 (Basic)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Embedded List Read</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_read/fss_embedded_list_read.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/fss_embedded_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_read/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_embedded_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_embedded_list_read.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_read/fss_embedded_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_embedded_list_read.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
All numeric positions (indexes) start at 0 instead of 1.
</p>
+
<p class="p">
For example, a file of 17 lines would range from 0 to 16.
</p>
+
<p class="p">
When using the <code class="code">--depth</code> option, an order of operations is enforced on the parameters.
</p>
+
<p class="p">
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt"><code class="code">--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code">--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code"><code class="code">--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
</div>
</dl>
+
<p class="p">
The parameter <code class="code">--depth</code> must be in numeric order, but values in between may be skipped.
</p>
+
<ul>
<li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
<li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
</ul>
+
<p class="p">
The parameter <code class="code">--select</code> selects a Content column.
</p>
+
<p class="p">
Specify both <code class="code">--object</code> and the --total parameters to get the total objects.
</p>
+
<p class="p">
When both <code class="code">--at</code> and <code class="code">--name</code> parameters are specified (at the same depth), the <code class="code">--at</code> parameter value will be treated as a position relative to the specified <code class="code">--name</code> parameter value.
</p>
+
<p class="p">
This program may support parameters, such as <code class="code">--depth</code> or <code class="code">--select</code>, even if not supported by the standard.
</p>
+
<p class="p">
This is done to help ensure consistency for scripting.
</p>
+
<p class="p">
For parameters like <code class="code">--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
</p>
+
<p class="p">
For parameters like <code class="code">--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
</p>
+
<p class="p">
The parameter <code class="code">--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
</p>
+
<p class="p">
When specifying both the <code class="code">--object</code> parameter and the <code class="code">--content</code> parameter, the entire Object and Content are printed, including the formatting.
</p>
+
<p class="p">
Both the Object and Content printed are already escaped.
</p>
+
<p class="p">
Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
</p>
+
<p class="p">
The parameter <code class="code">--delimit</code> accepts the following:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
</div>
</dl>
+
<p class="p">
The <code class="code">--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
</p>
+
<p class="p">
The <code class="code">--delimit</code> values none and all, overrule all other delimit values.
</p>
+
<p class="p">
The parameters <code class="code">--columns</code> and <code class="code">--select</code> refer to a Content column.
</p>
+
<p class="p">
The word "<em class="em">column</em>" is being loosely defined to refer to a specific Content.
</p>
+
<p class="p">
This is not to be confused with a depth.
</p>
<head>
<title>Documentation - FSS Embedded List Read - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_read/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read/fss_embedded_list_read.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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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 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>
+ <a href="projects/fss_read/fss_embedded_list_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_embedded_list_read/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Embedded List Read</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Embedded List Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0008.html" class="link">FSS-0008 (Embedded List)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Extended List Read</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_read/fss_extended_list_read.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/fss_extended_list_read.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_read/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_extended_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_extended_list_read.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_read/fss_extended_list_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_extended_list_read.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
All numeric positions (indexes) start at 0 instead of 1.
</p>
+
<p class="p">
For example, a file of 17 lines would range from 0 to 16.
</p>
+
<p class="p">
When using the <code class="code">--depth</code> option, an order of operations is enforced on the parameters.
</p>
+
<p class="p">
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt"><code class="code">--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code">--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code"><code class="code">--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
</div>
</dl>
+
<p class="p">
The parameter <code class="code">--depth</code> must be in numeric order, but values in between may be skipped.
</p>
+
<ul>
<li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
<li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
</ul>
+
<p class="p">
The parameter <code class="code">--select</code> selects a Content column.
</p>
+
<p class="p">
Specify both <code class="code">--object</code> and the --total parameters to get the total objects.
</p>
+
<p class="p">
When both <code class="code">--at</code> and <code class="code">--name</code> parameters are specified (at the same depth), the <code class="code">--at</code> parameter value will be treated as a position relative to the specified <code class="code">--name</code> parameter value.
</p>
+
<p class="p">
This program may support parameters, such as <code class="code">--depth</code> or <code class="code">--select</code>, even if not supported by the standard.
</p>
+
<p class="p">
This is done to help ensure consistency for scripting.
</p>
+
<p class="p">
For parameters like <code class="code">--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
</p>
+
<p class="p">
For parameters like <code class="code">--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
</p>
+
<p class="p">
The parameter <code class="code">--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
</p>
+
<p class="p">
When specifying both the <code class="code">--object</code> parameter and the <code class="code">--content</code> parameter, the entire Object and Content are printed, including the formatting.
</p>
+
<p class="p">
Both the Object and Content printed are already escaped.
</p>
+
<p class="p">
Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
</p>
+
<p class="p">
The parameter <code class="code">--delimit</code> accepts the following:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
</div>
</dl>
+
<p class="p">
The <code class="code">--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
</p>
+
<p class="p">
The <code class="code">--delimit</code> values none and all, overrule all other delimit values.
</p>
+
<p class="p">
The parameters <code class="code">--columns</code> and <code class="code">--select</code> refer to a Content column.
</p>
+
<p class="p">
The word "<em class="em">column</em>" is being loosely defined to refer to a specific Content.
</p>
+
<p class="p">
This is not to be confused with a depth.
</p>
<head>
<title>Documentation - FSS Extended List Read - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_read/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read/fss_extended_list_read.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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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 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>
+ <a href="projects/fss_read/fss_extended_list_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_extended_list_read/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Extended List Read</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Extended List Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003 (Extended List)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Extended Read</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_read/fss_extended_read.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/fss_extended_read.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_read/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_extended_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_extended_read.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_read/fss_extended_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_extended_read.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
All numeric positions (indexes) start at 0 instead of 1.
</p>
+
<p class="p">
For example, a file of 17 lines would range from 0 to 16.
</p>
+
<p class="p">
When using the <code class="code">--depth</code> option, an order of operations is enforced on the parameters.
</p>
+
<p class="p">
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt"><code class="code">--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code">--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code"><code class="code">--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
</div>
- <div class="di">
</dl>
+
<p class="p">
The parameter <code class="code">--depth</code> must be in numeric order, but values in between may be skipped.
</p>
+
<ul>
<li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
<li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
</ul>
+
<p class="p">
The parameter <code class="code">--select</code> selects a Content column.
</p>
+
<p class="p">
Specify both <code class="code">--object</code> and the --total parameters to get the total objects.
</p>
+
<p class="p">
When both <code class="code">--at</code> and <code class="code">--name</code> parameters are specified (at the same depth), the <code class="code">--at</code> parameter value will be treated as a position relative to the specified <code class="code">--name</code> parameter value.
</p>
+
<p class="p">
This program may support parameters, such as <code class="code">--depth</code> or <code class="code">--select</code>, even if not supported by the standard.
</p>
+
<p class="p">
This is done to help ensure consistency for scripting.
</p>
+
<p class="p">
For parameters like <code class="code">--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
</p>
+
<p class="p">
For parameters like <code class="code">--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
</p>
+
<p class="p">
The parameter <code class="code">--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
</p>
+
<p class="p">
When specifying both the <code class="code">--object</code> parameter and the <code class="code">--content</code> parameter, the entire Object and Content are printed, including the formatting.
</p>
+
<p class="p">
Both the Object and Content printed are already escaped.
</p>
+
<p class="p">
Both the Object and Content are separated by a space.
</p>
+
<p class="p">
The parameter <code class="code">--delimit</code> accepts the following:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
</div>
</dl>
+
<p class="p">
The <code class="code">--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
</p>
+
<p class="p">
The <code class="code">--delimit</code> values none and all, overrule all other delimit values.
</p>
+
<p class="p">
The parameters <code class="code">--columns</code> and <code class="code">--select</code> refer to a Content column.
</p>
+
<p class="p">
The word "<em class="em">column</em>" is being loosely defined to refer to a specific Content.
</p>
+
<p class="p">
This is not to be confused with a depth.
</p>
<head>
<title>Documentation - FSS Extended Read - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_read/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read/fss_extended_read.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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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 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>
+ <a href="projects/fss_read/fss_extended_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_extended_read/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Extended Read</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Extended Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0001.html" class="link">FSS-0001 (Extended)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Payload Read</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_read/fss_payload_read.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/fss_payload_read.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_read/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_payload_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_payload_read.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_read/fss_payload_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_payload_read.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
All numeric positions (indexes) start at 0 instead of 1.
</p>
+
<p class="p">
For example, a file of 17 lines would range from 0 to 16.
</p>
+
<p class="p">
When using the <code class="code">--depth</code> option, an order of operations is enforced on the parameters.
</p>
+
<p class="p">
When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt"><code class="code">--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code">--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
</div>
+
<div class="di">
<dt class="dt"><code class="code"><code class="code">--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
</div>
</dl>
+
<p class="p">
The parameter <code class="code">--depth</code> must be in numeric order, but values in between may be skipped.
</p>
+
<ul>
<li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
<li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
</ul>
+
<p class="p">
The parameter <code class="code">--select</code> selects a Content column.
</p>
+
<p class="p">
Specify both <code class="code">--object</code> and the --total parameters to get the total objects.
</p>
+
<p class="p">
When both <code class="code">--at</code> and <code class="code">--name</code> parameters are specified (at the same depth), the <code class="code">--at</code> parameter value will be treated as a position relative to the specified <code class="code">--name</code> parameter value.
</p>
+
<p class="p">
This program may support parameters, such as <code class="code">--depth</code> or <code class="code">--select</code>, even if not supported by the standard.
</p>
+
<p class="p">
This is done to help ensure consistency for scripting.
</p>
+
<p class="p">
For parameters like <code class="code">--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
</p>
+
<p class="p">
For parameters like <code class="code">--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
</p>
+
<p class="p">
The parameter <code class="code">--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
</p>
+
<p class="p">
When specifying both the <code class="code">--object</code> parameter and the <code class="code">--content</code> parameter, the entire Object and Content are printed, including the formatting.
</p>
+
<p class="p">
Both the Object and Content printed are already escaped.
</p>
+
<p class="p">
Both the Object and Content are separated by a New Line character '<kbd>\n</kbd>' (U+000A).
</p>
+
<p class="p">
The parameter <code class="code">--delimit</code> accepts the following:
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
</div>
+
<div class="di">
<dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
</div>
+
<div class="di">
<dt class="dt">A number, zero or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
</div>
</dl>
+
<p class="p">
The <code class="code">--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
</p>
+
<p class="p">
The <code class="code">--delimit</code> values none and all, overrule all other delimit values.
</p>
+
<p class="p">
The parameters <code class="code">--columns</code> and <code class="code">--select</code> refer to a Content column.
</p>
+
<p class="p">
The word "<em class="em">column</em>" is being loosely defined to refer to a specific Content.
</p>
+
<p class="p">
This is not to be confused with a depth.
</p>
+
<p class="p">
As an exceptional case, a <code class="code">--depth</code> of 1 applies only to the explicit Object of "<em class="em">header</em>".
</p>
+
<p class="p">
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>.
</p>
<head>
<title>Documentation - FSS Payload Read - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_read/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_read/fss_payload_read.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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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>
+ <a href="projects/fss_read/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 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>
+ <a href="projects/fss_read/fss_payload_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_payload_read/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Payload Read</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Payload Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-000e.html" class="link">FSS-000E (Payload)</a></li>
+ </ul>
</div>
</main>
</div>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Read</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Read program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS 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">
+ <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="projects/fss_read/fss_read.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 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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/fss_read.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">FSS Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read/fss_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ <a href="projects/fss_read/fss_read/specifications.html" class="nav-text link">FSS Read</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fss_read/fss_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_read/fss_read.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 Read Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">fss_read</strong> program is a tool for reading and processing strings using several <abbr title="Featureless Settings Specification">FSS</abbr> standards.
+ </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">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+Q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+E</code></td>
+ <td class="column"><code class="code">++error</code></td>
+ <td class="column">Decrease verbosity, using only error output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+N</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+
+ <p class="p">
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select Object at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the Content (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--columns</code></td>
+ <td class="column">Print the total number of columns.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-D</code></td>
+ <td class="column"><code class="code">--delimit</code></td>
+ <td class="column">Designate how to handle applying delimits.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--depth</code></td>
+ <td class="column">Select Object at this numeric depth.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Include empty Content when processing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the Content at the given line.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select Object with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the Object.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--pipe</code></td>
+ <td class="column">Print using the special pipe format.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--original</code></td>
+ <td class="column">Print with the original quotes and escapes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select sub-Content at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of lines.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names on select or print.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-A</code></td>
+ <td class="column"><code class="code">--as</code></td>
+ <td class="column">Designate the supported format to read as.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ All numeric positions (indexes) start at 0 instead of 1.
+ </p>
+
+ <p class="p">
+ For example, a file of 17 lines would range from 0 to 16.
+ </p>
+
+ <p class="p">
+ When using the <code class="code">--depth</code> option, an order of operations is enforced on the parameters.
+ </p>
+
+ <p class="p">
+ When this order of operations is in effect, parameters to the right of a depth parameter are influenced by that depth parameter:
+ </p>
+
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt"><code class="code">--at</code></dt><dd class="dd">An Object index at the specified depth.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt"><code class="code">--depth</code></dt><dd class="dd">A new depth within the specified depth, indexed from the root.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt"><code class="code"><code class="code">--name</code></code></dt><dd class="dd">An Object name at the specified depth.</dd>
+ </div>
+ </dl>
+
+ <p class="p">
+ The parameter <code class="code">--depth</code> must be in numeric order, but values in between may be skipped.
+ </p>
+
+ <ul>
+ <li>('-d 0 -a 1 -d 2 -a 2' would specify index 1 at depth 0, any index at depth 1, and index 2 at depth 2.)</li>
+ <li>('-d 2 -a 1 -d 0 -a 2' would be invalid because depth 2 is before depth 1.)</li>
+ </ul>
+
+ <p class="p">
+ The parameter <code class="code">--select</code> selects a Content column.
+ </p>
+
+ <p class="p">
+ Specify both <code class="code">--object</code> and the --total parameters to get the total objects.
+ </p>
+
+ <p class="p">
+ When both <code class="code">--at</code> and <code class="code">--name</code> parameters are specified (at the same depth), the <code class="code">--at</code> parameter value will be treated as a position relative to the specified <code class="code">--name</code> parameter value.
+ </p>
+
+ <p class="p">
+ This program may support parameters, such as <code class="code">--depth</code> or <code class="code">--select</code>, even if not supported by the standard.
+ </p>
+
+ <p class="p">
+ This is done to help ensure consistency for scripting.
+ </p>
+
+ <p class="p">
+ For parameters like <code class="code">--depth</code>, if the standard doesn't support nested Content, then only a depth of 0 would be valid.
+ </p>
+
+ <p class="p">
+ For parameters like <code class="code">--select</code>, if the standard doesn't support multiple Content groups, then only a select of 0 would be valid.
+ </p>
+
+ <p class="p">
+ The parameter <code class="code">--trim</code> will remove leading and trailing white spaces when selecting objects or when printing objects.
+ </p>
+
+ <p class="p">
+ When specifying both the <code class="code">--object</code> parameter and the <code class="code">--content</code> parameter, the entire Object and Content are printed, including the formatting.
+ </p>
+
+ <p class="p">
+ Both the Object and Content printed are already escaped.
+ </p>
+
+ <p class="p">
+ Both the Object and Content are separated by a space.
+ </p>
+
+ <p class="p">
+ The parameter <code class="code">--delimit</code> accepts the following:
+ </p>
+
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">none</dt><dd class="dd">Do not apply delimits.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">all</dt><dd class="dd">(default) Apply all delimits.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">object</dt><dd class="dd">Apply delimits for Objects.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">A number, zero or greater</dt><dd class="dd">apply delimits for Content at the specified depth.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">A number, zero or greater, followed by a +</dt><dd class="dd">(such as '1+') apply delimits for Content at the specified depth and any greater depth (numerically).</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">A number, zero or lesser, followed by a -</dt><dd class="dd">(such as '1-') apply delimits for Content at the specified depth and any lesser depth (numerically).</dd>
+ </div>
+ </dl>
+
+ <p class="p">
+ The <code class="code">--delimit</code> parameter may be specified multiple times to customize the delimit behavior.
+ </p>
+
+ <p class="p">
+ The <code class="code">--delimit</code> values none and all, overrule all other delimit values.
+ </p>
+
+ <p class="p">
+ The parameters <code class="code">--columns</code> and <code class="code">--select</code> refer to a Content column.
+ </p>
+
+ <p class="p">
+ The word "<em class="em">column</em>" is being loosely defined to refer to a specific Content.
+ </p>
+
+ <p class="p">
+ This is not to be confused with a depth.
+ </p>
+
+ <p class="p">
+ The '<code class="code">--as</code>' parameter supports the following standards with the specified possible case-sensitive values:
+ </p>
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0000.html" class="link">As FSS-0000 (Basic) format</a>: '<code class="code">0000</code>', '<code class="code">fss-0000</code>', or '<code class="code">basic</code>'.</li>
+ <li><a href="fll/specifications/fss/fss-0001.html" class="link">As FSS-0001 (Extended) format</a>: '<code class="code">0001</code>', '<code class="code">fss-0001</code>', or '<code class="code">extended</code>'.</li>
+ <li><a href="fll/specifications/fss/fss-0002.html" class="link">As FSS-0002 (Basic List) format</a>: '<code class="code">0002</code>', '<code class="code">fss-0002</code>', '<code class="code">basic list</code>', or '<code class="code">basic_list</code>'.</li>
+ <li><a href="fll/specifications/fss/fss-0003.html" class="link">As FSS-0003 (Extended List) format</a>: '<code class="code">0003</code>', '<code class="code">fss-0003</code>', or '<code class="code">extended list</code>', '<code class="code">extended_list</code>'.</li>
+ <li><a href="fll/specifications/fss/fss-0008.html" class="link">As FSS-0008 (Embedded List) format</a>: '<code class="code">0008</code>', '<code class="code">fss-0008</code>', '<code class="code">embedded list</code>', or '<code class="code">embedded_list</code>'.</li>
+ <li><a href="fll/specifications/fss/fss-000e.html" class="link">As FSS-000E (Payload) format</a>: '<code class="code">000e</code>', '<code class="code">fss-000e</code>', or '<code class="code">payload</code>'.</li>
+ </ul>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Read - Specifications</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Read program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS 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="projects/fss_read/fss_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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/fss_read/fss_read.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="projects/fss_read.html" class="nav-text link">FSS Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_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 Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fss_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_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 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>.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">FSS Read</strong> follows the following specifications:
+ </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-0008.html" class="link">FSS-0008 (Embedded List)</a></li>
+ <li><a href="fll/specifications/fss/fss-000e.html" class="link">FSS-000E (Payload)</a></li>
+ </ul>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - FSS Basic Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Write project.">
+ <meta name="keywords" content="Featureless, FLL, FSS Basic List Write, FSS Basic Write, FSS Embedded Write, FSS, FSS Extended List Write, FSS Extended Write, FSS Write, FSS Payload Write, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/fss_write.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">FSS Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/fss_write/fss_basic_list_write.html" class="nav-text link">fss_basic_list_write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_basic_write.html" class="nav-text link">fss_basic_write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_embedded_list_write.html" class="nav-text link">fss_embedded_list_write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_extended_list_write.html" class="nav-text link">fss_extended_list_write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_extended_write.html" class="nav-text link">fss_extended_write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_payload_write.html" class="nav-text link">fss_payload_write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_write.html" class="nav-text link">fss_write</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fss_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write.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">Project: FSS Write</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">FSS Write</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/fss_write/fss_basic_list_write.html" class="link"><code class="code">fss_basic_list_write</code></a></div>
+ <ol>
+ <li><a href="projects/fss_write/fss_basic_list_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_write/fss_basic_list_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_write/fss_basic_list_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_write/fss_basic_write.html" class="link"><code class="code">fss_basic_write</code></a></div>
+ <ol>
+ <li><a href="projects/fss_write/fss_basic_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_write/fss_basic_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_write/fss_basic_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_write/fss_embedded_list_write.html" class="link"><code class="code">fss_embedded_list_write</code></a></div>
+ <ol>
+ <li><a href="projects/fss_write/fss_embedded_list_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_write/fss_embedded_list_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_write/fss_embedded_list_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_write/fss_extended_list_write.html" class="link"><code class="code">fss_extended_list_write</code></a></div>
+ <ol>
+ <li><a href="projects/fss_write/fss_extended_list_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_write/fss_extended_list_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_write/fss_extended_list_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_write/fss_extended_write.html" class="link"><code class="code">fss_extended_write</code></a></div>
+ <ol>
+ <li><a href="projects/fss_write/fss_extended_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_write/fss_extended_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_write/fss_extended_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/fss_write/fss_write.html" class="link"><code class="code">fss_write</code></a></div>
+ <ol>
+ <li><a href="projects/fss_write/fss_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/fss_write/fss_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/fss_write/fss_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Basic List Write</title>
+
+ <base href="../../">
+
+ <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, 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">
+ <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="projects/fss_write/fss_basic_list_write.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 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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/fss_write.html" class="nav-text link back">Back</a>
+ </div>
+ <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="projects/fss_write/fss_basic_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_basic_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ <a href="projects/fss_write/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>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fss_write/fss_basic_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_basic_list_write.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 Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="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">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-E</code></td>
+ <td class="column"><code class="code">--content_end</code></td>
+ <td class="column">Write the end of Content characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--content_next</code></td>
+ <td class="column">Write the next Content characters (separates multi-Content apart).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use graves to quote.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--object_open</code></td>
+ <td class="column">Write the open Object characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+
+ <p class="p">
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--ignore</code></td>
+ <td class="column">Ignore a given range within a Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--partial</code></td>
+ <td class="column">Do not file end of Object/Content character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-P</code></td>
+ <td class="column"><code class="code">--prepend</code></td>
+ <td class="column">Prepend the given white space characters to the start of each multi-line Content.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-T</code></td>
+ <td class="column"><code class="code">--trim</code></td>
+ <td class="column">Trim Object names.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
+ </p>
+
+ <p class="p">
+ The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
+ </p>
+
+ <p class="p">
+ The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
+ </p>
+
+ <p class="p">
+ The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
+ </p>
+
+ <p class="p">
+ 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).<br>
+ The end of the pipe represents the end of any Object or Content.
+ </p>
+
+ <p class="p">
+ 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.<br>
+ This parameter requires two values.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - FSS Basic List Write - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_write/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write/fss_basic_list_write.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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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 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>
+ <a href="projects/fss_write/fss_basic_list_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_basic_list_write/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Basic List Write</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Basic List Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0002.html" class="link">FSS-0002 (Basic List)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Basic Write</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_write/fss_basic_write.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/fss_basic_write.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_write/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_basic_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_basic_write.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_write/fss_basic_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_basic_write.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">The Content to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-E</code></td>
+ <td class="column"><code class="code">--content_end</code></td>
+ <td class="column">Write the end of Content characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--content_next</code></td>
+ <td class="column">Write the next Content characters (separates multi-Content apart).</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-d</code></td>
<td class="column"><code class="code">--double</code></td>
<td class="column">Use double quotes (default).</td>
<td class="column">Specify a file to send data to.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use graves to quote.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-I</code></td>
<td class="column"><code class="code">--ignore</code></td>
<td class="column">Ignore a given range within a Content.</td>
<td class="column">The Object to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--object_open</code></td>
+ <td class="column">Write the open Object characters.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-p</code></td>
<td class="column"><code class="code">--partial</code></td>
<td class="column">Do not file end of Object/Content character.</td>
</tbody>
</table>
</div>
+
<p class="p">
This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
</p>
+
<p class="p">
The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
</p>
+
<p class="p">
The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
</p>
+
<p class="p">
The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
</p>
+
<p class="p">
- 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.
+ 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).<br>
+ The end of the pipe represents the end of any Object or Content.
</p>
+
<p class="p">
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.
+ This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing.<br>
+ This parameter requires two values.
</p>
</div>
</section>
<head>
<title>Documentation - FSS Basic Write - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_write/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write/fss_basic_write.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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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 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>
+ <a href="projects/fss_write/fss_basic_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_basic_write/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Basic Write</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Basic Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0000.html" class="link">FSS-0000 (Basic)</a></li>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Embedded List Write</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_write/fss_embedded_list_write.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/fss_embedded_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_write/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_embedded_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_embedded_list_write.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_write/fss_embedded_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_embedded_list_write.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">The Content to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-E</code></td>
+ <td class="column"><code class="code">--content_end</code></td>
+ <td class="column">Write the end of Content characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--content_next</code></td>
+ <td class="column">Write the next Content characters (separates multi-Content apart).</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-d</code></td>
<td class="column"><code class="code">--double</code></td>
<td class="column">Use double quotes (default).</td>
<td class="column">Specify a file to send data to.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use graves to quote.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-I</code></td>
<td class="column"><code class="code">--ignore</code></td>
<td class="column">Ignore a given range within a Content.</td>
<td class="column">The Object to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--object_open</code></td>
+ <td class="column">Write the open Object characters.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-p</code></td>
<td class="column"><code class="code">--partial</code></td>
<td class="column">Do not file end of Object/Content character.</td>
</tbody>
</table>
</div>
+
<p class="p">
This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
</p>
+
<p class="p">
The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
</p>
+
<p class="p">
The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
</p>
+
<p class="p">
The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
</p>
+
<p class="p">
- 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.
+ 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).<br>
+ The end of the pipe represents the end of any Object or Content.
</p>
+
<p class="p">
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.
+ This program uses the parameter <code class="code">--ignore</code>, which designates to not escape any valid nested Object or Content within some Content.<br>
+ 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.
</p>
</div>
</section>
<head>
<title>Documentation - FSS Embedded List Write - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_write/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write/fss_embedded_list_write.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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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 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>
+ <a href="projects/fss_write/fss_embedded_list_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_embedded_list_write/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Embedded List Write</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Embedded List Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0008.html" class="link">FSS-0008 (Embedded List)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Extended List Write</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_write/fss_extended_list_write.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/fss_extended_list_write.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_write/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_extended_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_extended_list_write.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_write/fss_extended_list_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_extended_list_write.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">The Content to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-E</code></td>
+ <td class="column"><code class="code">--content_end</code></td>
+ <td class="column">Write the end of Content characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--content_next</code></td>
+ <td class="column">Write the next Content characters (separates multi-Content apart).</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-d</code></td>
<td class="column"><code class="code">--double</code></td>
<td class="column">Use double quotes (default).</td>
<td class="column">Specify a file to send data to.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use graves to quote.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-I</code></td>
<td class="column"><code class="code">--ignore</code></td>
<td class="column">Ignore a given range within a Content.</td>
<td class="column">The Object to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--object_open</code></td>
+ <td class="column">Write the open Object characters.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-p</code></td>
<td class="column"><code class="code">--partial</code></td>
<td class="column">Do not file end of Object/Content character.</td>
</tbody>
</table>
</div>
+
<p class="p">
This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
</p>
+
<p class="p">
The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
</p>
+
<p class="p">
The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
</p>
+
<p class="p">
The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
</p>
+
<p class="p">
- 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.
+ 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).<br>
+ The end of the pipe represents the end of any Object or Content.
</p>
+
<p class="p">
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.
+ This program uses the parameter <code class="code">--ignore</code>, which designates to not escape any valid nested Object or Content within some Content.<br>
+ 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.
</p>
</div>
</section>
<head>
<title>Documentation - FSS Extended List Write - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_write/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write/fss_extended_list_write.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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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 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>
+ <a href="projects/fss_write/fss_extended_list_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_extended_list_write/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Extended List Write</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Extended List Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0003.html" class="link">FSS-0003 (Extended List)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Extended Write</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_write/fss_extended_write.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/fss_extended_write.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_write/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_extended_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_extended_write.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_write/fss_extended_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_extended_write.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">The Content to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-E</code></td>
+ <td class="column"><code class="code">--content_end</code></td>
+ <td class="column">Write the end of Content characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--content_next</code></td>
+ <td class="column">Write the next Content characters (separates multi-Content apart).</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-d</code></td>
<td class="column"><code class="code">--double</code></td>
<td class="column">Use double quotes (default).</td>
<td class="column">Specify a file to send data to.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use graves to quote.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-I</code></td>
<td class="column"><code class="code">--ignore</code></td>
<td class="column">Ignore a given range within a Content.</td>
<td class="column">The Object to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--object_open</code></td>
+ <td class="column">Write the open Object characters.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-p</code></td>
<td class="column"><code class="code">--partial</code></td>
<td class="column">Do not file end of Object/Content character.</td>
</tbody>
</table>
</div>
+
<p class="p">
This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
</p>
+
<p class="p">
The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
</p>
+
<p class="p">
The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
</p>
+
<p class="p">
The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
</p>
+
<p class="p">
- 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.
+ 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).<br>
+ The end of the pipe represents the end of any Object or Content.
</p>
<p class="p">
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.
+ This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing.<br>
+ This parameter requires two values.
</p>
</div>
</section>
<head>
<title>Documentation - FSS Extended Write - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_write/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write/fss_extended_write.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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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 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>
+ <a href="projects/fss_write/fss_extended_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_extended_write/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Extended Write</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Extended Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-0001.html" class="link">FSS-0001 (Extended)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - FSS Payload Write</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/fss_write/fss_payload_write.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/fss_payload_write.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_write/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_payload_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_payload_write.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_write/fss_payload_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_payload_write.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">The Content to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-E</code></td>
+ <td class="column"><code class="code">--content_end</code></td>
+ <td class="column">Write the end of Content characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--content_next</code></td>
+ <td class="column">Write the next Content characters (separates multi-Content apart).</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-d</code></td>
<td class="column"><code class="code">--double</code></td>
<td class="column">Use double quotes (default).</td>
<td class="column">Specify a file to send data to.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use graves to quote.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-I</code></td>
<td class="column"><code class="code">--ignore</code></td>
<td class="column">Ignore a given range within a Content.</td>
<td class="column">The Object to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--object_open</code></td>
+ <td class="column">Write the open Object characters.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-p</code></td>
<td class="column"><code class="code">--partial</code></td>
<td class="column">Do not file end of Object/Content character.</td>
</tbody>
</table>
</div>
+
<p class="p">
This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
</p>
+
<p class="p">
The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
</p>
+
<p class="p">
The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
</p>
+
<p class="p">
The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
</p>
+
<p class="p">
- 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.
+ 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).<br>
+ The end of the pipe represents the end of any Object or Content.
</p>
+
<p class="p">
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.
+ This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing.<br>
+ This parameter requires two values.
</p>
</div>
</section>
<head>
<title>Documentation - FSS Payload Write - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/fss_write/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write/fss_payload_write.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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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>
+ <a href="projects/fss_write/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 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>
+ <a href="projects/fss_write/fss_payload_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_payload_write/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">FSS Payload Write</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">FSS Payload Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/fss/fss-000e.html" class="link">FSS-000E (Payload)</a></li>
+ </ul>
</div>
</main>
</div>
<!DOCTYPE html>
<html lang="en">
<head>
- <title>Documentation - FSS Basic List Write</title>
+ <title>Documentation - FSS Write</title>
- <base href="../">
+ <base href="../../">
<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, FSS, FSS Basic List Write, Open-Source">
+ <meta name="description" content="FSS Write program documentation.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS, FSS 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">
<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.html">
+ <link rel="canonical" href="projects/fss_write/fss_write.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/fss_write.html" class="nav-text link back">Back</a>
</div>
<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 class="nav-text unlink">FSS Write</div>
</div>
<div class="nav-item block">
- <a href="documentation/fss_basic_list_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/fss_write/fss_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>
+ <a href="projects/fss_write/fss_write.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/fss_write/fss_write/specifications.html" class="nav-text link">FSS Write</a>
</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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_basic_list_write.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/fss_write/fss_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_write.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 Documentation</h1>
+ <h1 class="section-title h h1">FSS Write Documentation</h1>
</header>
<div class="main-content">
<p class="p">
- The <strong class="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.
+ The <strong class="strong">fss_write</strong> program is a tool for for generating strings that follow the <abbr title="Featureless Settings Specification">FSS</abbr> standards.
</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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">The Content to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-E</code></td>
+ <td class="column"><code class="code">--content_end</code></td>
+ <td class="column">Write the end of Content characters.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-N</code></td>
+ <td class="column"><code class="code">--content_next</code></td>
+ <td class="column">Write the next Content characters (separates multi-Content apart).</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-d</code></td>
<td class="column"><code class="code">--double</code></td>
<td class="column">Use double quotes (default).</td>
<td class="column">Specify a file to send data to.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use graves to quote.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-I</code></td>
<td class="column"><code class="code">--ignore</code></td>
<td class="column">Ignore a given range within a Content.</td>
<td class="column">The Object to write.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--object_open</code></td>
+ <td class="column">Write the open Object characters.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-p</code></td>
<td class="column"><code class="code">--partial</code></td>
<td class="column">Do not file end of Object/Content character.</td>
<td class="column"><code class="code">--trim</code></td>
<td class="column">Trim Object names.</td>
</tr>
+ <tr class="row">
+ <td class="column"><code class="code">-A</code></td>
+ <td class="column"><code class="code">--as</code></td>
+ <td class="column">Designate the supported format to read as.</td>
+ </tr>
</tbody>
</table>
</div>
+
<p class="p">
This special piped input format uses the <abbr title="American Standard Code for Information Interchange">ASCII</abbr> Backspace character '<kbd>\b</kbd>' (U+0008), Form Feed character '\f' (U+000C), and Vertical Line character '\v' (U+000B).
</p>
+
<p class="p">
The Backspace character '<kbd>\b</kbd>' (U+0008) is used to designate the start of a Content.
</p>
+
<p class="p">
The Form Feed character '<kbd>\f</kbd>' (U+000C) is used to designate the end of the last Content.
</p>
+
<p class="p">
The Vertical Line character '<kbd>\v</kbd>' (U+000B) is used to ignore a Content range, which does nothing in this program.
</p>
+
<p class="p">
- 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.
+ 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).<br>
+ The end of the pipe represents the end of any Object or Content.
</p>
+
<p class="p">
- 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.
+ 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.
+ This program does not use the parameter <code class="code">--ignore</code>, which therefore does nothing.<br>
+ This parameter requires two values.
</p>
</div>
</section>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - FSS Write - Specifications</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="FSS Write program specifications.">
+ <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, FSS 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="projects/fss_write/fss_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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/fss_write/fss_write.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="projects/fss_write/fss_write.html" class="nav-text link">FSS Write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/fss_write/fss_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 Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/fss_write/fss_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/fss_write/fss_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 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>.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">FSS Write</strong> follows the following specifications:
+ </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-0008.html" class="link">FSS-0008 (Embedded List)</a></li>
+ <li><a href="fll/specifications/fss/fss-000e.html" class="link">FSS-000E (Payload)</a></li>
+ </ul>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - IKI Read</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="IKI Read project.">
+ <meta name="keywords" content="EKI, EKI Read, Featureless, FLL, IKI, IKI Read, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/iki_read.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">IKI Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/iki_read/eki_read.html" class="nav-text link">eki_read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_read/iki_read.html" class="nav-text link">iki_read</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/iki_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_read.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">Project: IKI Read</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">IKI Read</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/iki_read/eki_read.html" class="link"><code class="code">eki_read</code></a></div>
+ <ol>
+ <li><a href="projects/iki_read/eki_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/iki_read/eki_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/iki_read/eki_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/iki_read/iki_read.html" class="link"><code class="code">iki_read</code></a></div>
+ <ol>
+ <li><a href="projects/iki_read/iki_read.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/iki_read/iki_read.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/iki_read/iki_read/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - EKI Read</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="EKI Read program documentation.">
+ <meta name="keywords" content="EKI, EKI Read, FLL, Featureless, Kevin Day, Kevux, 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">
+ <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="projects/iki_read/eki_read.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 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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/iki_read.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">EKI Read</div>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_read/eki_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_read/eki_read.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ <a href="projects/iki_read/eki_read/specifications.html" class="nav-text link">EKI Read</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/iki_read/eki_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_read/eki_read.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">EKI Read Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">eki_read</strong> program is a tool for processing strings that follow the EKI standard, specifically EKI-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 EKI Variables and even allowing for primitive substitution or only the EKI Variables (or their Content) can be printed.
+ </p>
+ </div>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+Q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+E</code></td>
+ <td class="column"><code class="code">++error</code></td>
+ <td class="column">Decrease verbosity, using only error output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+N</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+
+ <p class="p">
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--at</code></td>
+ <td class="column">Select variable at this numeric index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-n</code></td>
+ <td class="column"><code class="code">--name</code></td>
+ <td class="column">Select variables with this name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select Vocabulay (aka: Object) at this index.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">Print the variable value (aka: content) (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the variables at the given line within the file.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-L</code></td>
+ <td class="column"><code class="code">--literal</code></td>
+ <td class="column">Print the entire variable (aka: object, content, and syntax).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">Print the variable name (aka: object).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--total</code></td>
+ <td class="column">Print the total number of variables.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-w</code></td>
+ <td class="column"><code class="code">--whole</code></td>
+ <td class="column">Print all of the data instead of just the IKI variable data.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--reassign</code></td>
+ <td class="column">Re-assign the variable for the given name and matching content value with the given string.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-r</code></td>
+ <td class="column"><code class="code">--replace</code></td>
+ <td class="column">Simple substitution, replacing the variable for the given name with the given string.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--substitute</code></td>
+ <td class="column">Substitute the variable for the given name and matching content value with the given string.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-W</code></td>
+ <td class="column"><code class="code">--wrap</code></td>
+ <td class="column">Prepend and append strings for the given name.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ This program will find and print Variables, Vocabularies, or Content following the EKI standard, without focusing on any particular Vocabulary specification.
+ </p>
+
+ <p class="p">
+ The <code class="code">-r/--replace</code> option requires 2 additional parameters: <code class="code"><vocabulary> <with></code>.
+ </p>
+
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">vocabulary</dt><dd class="dd">The name of the Vocabulary whose Content is to be substituted.</dd>
+ </div>
+ <div class="di">
+ <dt class="dt">with</dt><dd class="dd">The new string to use as the substitute.</dd>
+ </div>
+ </dl>
+
+ <p class="p">
+ The Vocabulary is case-sensitive and must exactly match.
+ </p>
+
+ <p class="p">
+ The <code class="code">-R/--reassign</code> option and the <code class="code">-s/--substitute</code> options require 3 additional parameters:: <code class="code"><vocabulary> <replace> <with></code>.
+ </p>
+
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">vocabulary</dt><dd class="dd">The name of the Vocabulary whose Content is to be substituted.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">replace</dt><dd class="dd">The Content matching this exact string will be substituted.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">with</dt><dd class="dd">The new string to use as the substitute.</dd>
+ </div>
+ </dl>
+
+ <p class="p">
+ The Vocabulary and replacement are case-sensitive and must exactly match.
+ </p>
+
+ <p class="p">
+ The <code class="code">-W/--wrap</code> option requires 3 additional parameters: <code class="code"><vocabulary> <before> <after></code>.
+ </p>
+
+ <dl class="dl">
+ <div class="di">
+ <dt class="dt">vocabulary</dt><dd class="dd">The name of the vocabulary whose Content is to be wrapped.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">before</dt><dd class="dd">The string to prepend.</dd>
+ </div>
+
+ <div class="di">
+ <dt class="dt">after</dt><dd class="dd">The string to append.</dd>
+ </div>
+ </dl>
+
+ <p class="p">
+ The Vocabulary is case-sensitive and must exactly match.
+ </p>
+
+ <p class="p">
+ The difference between <code class="code">-r/--replace</code> and <code class="code">-s/--substitute</code> is that the <code class="code">-r/--replace</code> option substitutes all matching Vocabulary names and the <code class="code">-s/--substitute</code> option substitutes all matching Vocabulary names that must also have the given matching Content.
+ </p>
+
+ <p class="p">
+ The <code class="code">-s/--reassign</code> option is identical to the <code class="code">-s/--substitute</code> option except that the <code class="code">-W/--wrap</code> option is ignored (not applied).
+ </p>
+
+ <p class="p">
+ The <code class="code">-s/--substitute</code> option takes priority over the <code class="code">-r/--replace</code> option when matching the same Variable.
+ </p>
+
+ <p class="p">
+ The default behavior is to only display Content portion of the IKI variable.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - EKI Read - Specifications</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="EKI Read program specifications.">
+ <meta name="keywords" content="EKI, EKI Read, FLL, Featureless, Kevin Day, Kevux, Linux, Library, IKI, 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="projects/iki_read/eki_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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/iki_read/eki_read.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="projects/iki_read/eki_read.html" class="nav-text link">EKI Read</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_read/eki_read.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_read/eki_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">EKI Read</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/iki_read/eki_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_read/eki_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">EKI 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>.
+ </p>
+
+ <p class="p">
+ The <strong class="strong">EKI Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/eki/eki-0000.html" class="link">EKI-0000 (Unrestricted)</a></li>
+ </ul>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - IKI Read</title>
- <base href="../">
+ <base href="../../">
<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, IKI, IKI Read, Open-Source">
+ <meta name="keywords" content="FLL, Featureless, Kevin Day, Kevux, 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">
<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.html">
+ <link rel="canonical" href="projects/iki_read/iki_read.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/iki_read.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/iki_read/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>
+ <a href="projects/iki_read/iki_read.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/iki_read/iki_read/specifications.html" class="nav-text link">IKI Read</a>
</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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/iki_read.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/iki_read/iki_read.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_read/iki_read.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">Select variable at this numeric index.</td>
</tr>
<tr class="row">
- <td class="column"><code class="code">-l</code></td>
- <td class="column"><code class="code">--line</code></td>
- <td class="column">Print only the variables at the given line within the file.</td>
- </tr>
- <tr class="row">
<td class="column"><code class="code">-n</code></td>
<td class="column"><code class="code">--name</code></td>
<td class="column">Select variables with this name.</td>
</tr>
<tr class="row">
- <td class="column"><code class="code">-w</code></td>
- <td class="column"><code class="code">--whole</code></td>
- <td class="column">Print all of the data instead of just the IKI variable data.</td>
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--select</code></td>
+ <td class="column">Select Vocabulay (aka: Object) at this index.</td>
</tr>
<tr class="row">
<td class="column"><code class="code">-c</code></td>
<td class="column">Print the variable value (aka: content) (default).</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--line</code></td>
+ <td class="column">Print only the variables at the given line within the file.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-L</code></td>
<td class="column"><code class="code">--literal</code></td>
<td class="column">Print the entire variable (aka: object, content, and syntax).</td>
<td class="column">Print the total number of variables.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-w</code></td>
+ <td class="column"><code class="code">--whole</code></td>
+ <td class="column">Print all of the data instead of just the IKI variable data.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-R</code></td>
<td class="column"><code class="code">--reassign</code></td>
<td class="column">Re-assign the variable for the given name and matching content value with the given string.</td>
</tbody>
</table>
</div>
+
<p class="p">
This program will find and print Variables, Vocabularies, or Content following the IKI standard, without focusing on any particular Vocabulary specification.
</p>
+
<p class="p">
The <code class="code">-r/--replace</code> option requires 2 additional parameters: <code class="code"><vocabulary> <with></code>.
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">vocabulary</dt><dd class="dd">The name of the Vocabulary whose Content is to be substituted.</dd>
</div>
+
<div class="di">
<dt class="dt">with</dt><dd class="dd">The new string to use as the substitute.</dd>
</div>
</dl>
+
<p class="p">
The Vocabulary is case-sensitive and must exactly match.
</p>
+
<p class="p">
The <code class="code">-R/--reassign</code> option and the <code class="code">-s/--substitute</code> options require 3 additional parameters:: <code class="code"><vocabulary> <replace> <with></code>.
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">vocabulary</dt><dd class="dd">The name of the Vocabulary whose Content is to be substituted.</dd>
</div>
+
<div class="di">
<dt class="dt">replace</dt><dd class="dd">The Content matching this exact string will be substituted.</dd>
</div>
+
<div class="di">
<dt class="dt">with</dt><dd class="dd">The new string to use as the substitute.</dd>
</div>
</dl>
+
<p class="p">
The Vocabulary and replacement are case-sensitive and must exactly match.
</p>
+
<p class="p">
The <code class="code">-W/--wrap</code> option requires 3 additional parameters: <code class="code"><vocabulary> <before> <after></code>.
</p>
+
<dl class="dl">
<div class="di">
<dt class="dt">vocabulary</dt><dd class="dd">The name of the vocabulary whose Content is to be wrapped.</dd>
</div>
+
<div class="di">
<dt class="dt">before</dt><dd class="dd">The string to prepend.</dd>
</div>
+
<div class="di">
<dt class="dt">after</dt><dd class="dd">The string to append.</dd>
</div>
</dl>
+
<p class="p">
The Vocabulary is case-sensitive and must exactly match.
</p>
+
<p class="p">
The difference between <code class="code">-r/--replace</code> and <code class="code">-s/--substitute</code> is that the <code class="code">-r/--replace</code> option substitutes all matching Vocabulary names and the <code class="code">-s/--substitute</code> option substitutes all matching Vocabulary names that must also have the given matching Content.
</p>
+
<p class="p">
The <code class="code">-s/--reassign</code> option is identical to the <code class="code">-s/--substitute</code> option except that the <code class="code">-W/--wrap</code> option is ignored (not applied).
</p>
+
<p class="p">
The <code class="code">-s/--substitute</code> option takes priority over the <code class="code">-r/--replace</code> option when matching the same Variable.
</p>
+
<p class="p">
The default behavior is to only display Content portion of the IKI variable.
</p>
<head>
<title>Documentation - IKI Read - Specifications</title>
- <base href="../../">
+ <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="keywords" content="FLL, Featureless, Kevin Day, Kevux, Linux, Library, IKI, 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 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 rel="canonical" href="projects/iki_read/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/iki_read/iki_read.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>
+ <a href="projects/iki_read/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>
+ <a href="projects/iki_read/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>
+ <a href="projects/iki_read/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 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>
+ <a href="projects/iki_read/iki_read/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_read/iki_read/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">IKI Read</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">IKI Read</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/iki/iki-0000.html" class="link">IKI-0000 (Unrestricted)</a></li>
+ </ul>
</div>
</main>
</div>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - IKI Write</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="IKI Write project.">
+ <meta name="keywords" content="EKI, EKI Write, Featureless, FLL, IKI, IKI Write, Kevin Day, Kevux, Linux, Library, Open-Source, Project">
+ <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="projects/iki_write.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">IKI Write</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/iki_write/eki_write.html" class="nav-text link">eki_write</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_write/iki_write.html" class="nav-text link">iki_write</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/iki_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_write.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">Project: IKI Write</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">IKI Write</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/iki_write/eki_write.html" class="link"><code class="code">eki_write</code></a></div>
+ <ol>
+ <li><a href="projects/iki_write/eki_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/iki_write/eki_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/iki_write/eki_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/iki_write/iki_write.html" class="link"><code class="code">iki_write</code></a></div>
+ <ol>
+ <li><a href="projects/iki_write/iki_write.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/iki_write/iki_write.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/iki_write/iki_write/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - EKI Write</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="EKI Write program documentation.">
+ <meta name="keywords" content="EKI, EKI Write, FLL, Featureless, Kevin Day, Kevux, 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">
+ <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="projects/iki_write/eki_write.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 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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/iki_write.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">EKI Write</div>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_write/eki_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/iki_write/eki_write.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ <a href="projects/iki_write/eki_write/specifications.html" class="nav-text link">EKI Write</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/iki_write/eki_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_write/eki_write.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">EKI Write Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">eki_write</strong> program is a tool for generating strings that follow the EKI standard, specifically the EKI-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">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+Q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+E</code></td>
+ <td class="column"><code class="code">++error</code></td>
+ <td class="column">Decrease verbosity, using only error output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+N</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+
+ <p class="p">
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--content</code></td>
+ <td class="column">The Content to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--double</code></td>
+ <td class="column">Use double quotes (default).</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--file</code></td>
+ <td class="column">Specify a file to send data to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use grave (U+0060) for quotes.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--object</code></td>
+ <td class="column">The Object to write.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--single</code></td>
+ <td class="column">Use single quotes.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <p class="p">
+ This program will accept Object and Content strings to generate an IKI string, such as <code class="code">object:"content"</code>.<br>
+ Each Object must have a Content (and each Content must have an Object).
+ </p>
+
+ <p class="p">
+ The Object is also called the Vocabulary.<br>
+ A complete Object and Content set is also called a Variable.
+ </p>
+
+ <p class="p">
+ When piping main to this program, a single Form-Feed character (\f) (U+000C) must be used to separate each Object set from the Content.<br>
+ Each Object within an Object set is is separated by a single Backspace character (\b) (U+0008).<br>
+ Each Object set must be followed by a Content.
+
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<!DOCTYPE html>
<html lang="en">
<head>
- <title>Documentation - Kevux Firewall - Specifications</title>
+ <title>Documentation - EKI Write - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
- <meta name="description" content="Kevux firewall program specifications.">
- <meta name="keywords" content="Kevin Day, Kevux, FLL, Featureless, Linux, Library, Firewall, Open-Source, Specification">
+ <meta name="description" content="EKI Write program specifications.">
+ <meta name="keywords" content="EKI, EKI Write, FLL, Featureless, Kevin Day, Kevux, Linux, Library, IKI, 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 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/kevux_firewall/specifications.html">
+ <link rel="canonical" href="projects/iki_write/eki_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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/iki_write/eki_write.html" class="nav-text link back">Back</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">Documentation</div>
- <a href="documentation/kevux_firewall.html" class="nav-text link">Kevux Firewall</a>
+ <a href="projects/iki_write/eki_write.html" class="nav-text link">EKI Write</a>
</div>
<div class="nav-item block">
- <a href="documentation/kevux_firewall.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/iki_write/eki_write.html#parameters-standard" class="nav-text link">Standard Parameters</a>
</div>
<div class="nav-item block">
- <a href="documentation/kevux_firewall.html#parameters-program" class="nav-text link">Program Parameters</a>
- </div>
- <div class="nav-item block">
- <a href="documentation/kevux_firewall.html#commands" class="nav-text link">Commands</a>
+ <a href="projects/iki_write/eki_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">Kevux Firewall</div>
+ <div class="nav-text unlink">EKI 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/kevux_firewall/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/kevux_firewall/specifications.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/iki_write/eki_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_write/eki_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">Kevux Firewall Specifications</h1>
+ <h1 class="section-title h h1">EKI 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 class="strong">Kevux Firewall</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">EKI Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/eki/eki-0000.html" class="link">EKI-0000 (Unrestricted)</a></li>
+ </ul>
</div>
</main>
</div>
<head>
<title>Documentation - IKI Write</title>
- <base href="../">
+ <base href="../../">
<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, IKI, IKI Write, Open-Source">
+ <meta name="keywords" content="FLL, Featureless, Kevin Day, Kevux, 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">
<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.html">
+ <link rel="canonical" href="projects/iki_write/iki_write.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/iki_write.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/iki_write/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>
+ <a href="projects/iki_write/iki_write.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/iki_write/iki_write/specifications.html" class="nav-text link">IKI Write</a>
</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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/iki_write.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/iki_write/iki_write.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_write/iki_write.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<p class="p">
The <strong class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<td class="column">Specify a file to send data to.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--grave</code></td>
+ <td class="column">Use grave (U+0060) for quotes.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">-o</code></td>
<td class="column"><code class="code">--object</code></td>
<td class="column">The Object to write.</td>
</tbody>
</table>
</div>
+
<p class="p">
- This program will accept Object and Content strings to generate an IKI string, such as <code class="code">object:"content"</code>.
+ This program will accept Object and Content strings to generate an IKI string, such as <code class="code">object:"content"</code>.<br>
Each Object must have a Content (and each Content must have an Object).
</p>
+
<p class="p">
- The Object is also called the Vocabulary.
+ The Object is also called the Vocabulary.<br>
A complete Object and Content set is also called a Variable.
</p>
+
<p class="p">
- When piping main to this program, a single form-feed character (<kbd>\f</kbd>) (U+000C) must be used to separate each Object from each Content.
+ When piping main to this program, a single form-feed character (<kbd>\f</kbd>) (U+000C) must be used to separate each Object from each Content.<br>
Furthermore, each Object must be followed by a Content.
</p>
</div>
<head>
<title>Documentation - IKI Write - Specifications</title>
- <base href="../../">
+ <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="keywords" content="FLL, Featureless, Kevin Day, Kevux, Linux, Library, IKI, 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 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 rel="canonical" href="projects/iki_write/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/iki_write/iki_write.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>
+ <a href="projects/iki_write/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>
+ <a href="projects/iki_write/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>
+ <a href="projects/iki_write/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 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>
+ <a href="projects/iki_write/iki_write/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/iki_write/iki_write/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 class="strong">IKI Write</strong> does not directly use or provide any of these specifications.
</p>
+
+ <p class="p">
+ The <strong class="strong">IKI Write</strong> follows the following specifications:
+ </p>
+
+ <ul>
+ <li><a href="fll/specifications/eki/iki-0000.html" class="link">IKI-0000 (Unrestricted)</a></li>
+ </ul>
</div>
</main>
</div>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - Status Code</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Status Code project.">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project, Status Code">
+ <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="projects/status_code.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">Status Code</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/status_code/fss_status_code.html" class="nav-text link">fss_status_code</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/status_code/status_code.html" class="nav-text link">status_code</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/status_code.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/status_code.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">Project: Status Code</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">Status Code</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/status_code/fss_status_code.html" class="link"><code class="code">fss_status_code</code></a></div>
+ <ol>
+ <li><a href="projects/status_code/fss_status_code.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/status_code/fss_status_code.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/status_code/fss_status_code/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/status_code/status_code.html" class="link"><code class="code">status_code</code></a></div>
+ <ol>
+ <li><a href="projects/status_code/status_code.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/status_code/status_code.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/status_code/status_code/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - FSS Status Code</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/status_code/fss_status_code.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/status_code.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/status_code/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>
+ <a href="projects/status_code/fss_status_code.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/status_code/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>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/fss_status_code.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/fss_status_code.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/status_code/fss_status_code.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/status_code/fss_status_code.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<div class="main-content">
<p class="p">
- The <strong class="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.
+ The <strong class="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.<br>
+ 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>.
+ 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.<br>
+ The max status code supported is represented by the code words <code class="code">F_fss_status_code_last</code>.
</p>
</div>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
The <abbr title="Featureless Linux Library">FLL</abbr> programs use a <strong class="strong">16-bit unsigned integer</strong> to represent the return status of programs and functions.
</p>
+
<p class="p">
- Programs may print a generic error with one of these codes.
+ Programs may print a generic error with one of these codes.<br>
This is a tool for converting to or converting from these codes.
</p>
+
<p class="p">
- The <strong class="strong">16-bit unsigned integer</strong> also has the first two high-order bits used to represent flags.
- These flags are the <strong class="strong">error</strong> bit and the <strong class="strong">warning</strong> bit.
+ The <strong class="strong">16-bit unsigned integer</strong> also has the first two high-order bits used to represent flags.<br>
+ These flags are the <strong class="strong">error</strong> bit and the <strong class="strong">warning</strong> bit.<br>
When neither of these flags are set, then the status is considered <strong class="strong">fine</strong>.
</p>
+
<p class="p">
- This operates identical to the status_codes program except that this program handles additional codes regarding FSS.
- These special codes numericaly appear after the <code class="code">F_status_code_last</code> code.
+ This operates identical to the status_codes program except that this program handles additional codes regarding FSS.<br>
+ These special codes numericaly appear after the <code class="code">F_status_code_last</code> code.<br>
These codes stop at the <code class="code">F_fss_status_code_last</code> code.
</p>
+
<p class="p">
- Each code will be printed on its own line.
+ Each code will be printed on its own line.<br>
Errors regarding each code may be printed on its own line.
</p>
</div>
<head>
<title>Documentation - FSS Status Code - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/status_code/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/status_code.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>
+ <a href="projects/status_code/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>
+ <a href="projects/status_code/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>
+ <a href="projects/status_code/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 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>
+ <a href="projects/status_code/fss_status_code/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/status_code/fss_status_code/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<head>
<title>Documentation - Status Code</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/status_code/status_code.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/status_code.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/status_code/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>
+ <a href="projects/status_code/status_code.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/status_code/status_code/specifications.html" class="nav-text link">Status Code</a>
</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.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/status_code.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/status_code/status_code.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/status_code/status_code.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<div class="main-content">
<p class="p">
- The <strong class="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.
+ The <strong class="strong">status_code</strong> program is a tool for interpretting and changing the status codes received from programs into code words or vice-versa.<br>
+ 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>.
+ This tool only handles standard <abbr title="Featureless Linux Library">FLL</abbr> status codes.<br>
+ The max status code supported is represented by the code words <code class="code">F_status_code_last</code>.
</p>
</div>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
<p class="p">
The <abbr title="Featureless Linux Library">FLL</abbr> programs use a <strong class="strong">16-bit unsigned integer</strong> to represent the return status of programs and functions.
</p>
+
<p class="p">
- Programs may print a generic error with one of these codes.
+ Programs may print a generic error with one of these codes.<br>
This is a tool for converting to or converting from these codes.
</p>
+
<p class="p">
- The <strong class="strong">16-bit unsigned integer</strong> also has the first two high-order bits used to represent flags.
- These flags are the <strong class="strong">error</strong> bit and the <strong class="strong">warning</strong> bit.
+ The <strong class="strong">16-bit unsigned integer</strong> also has the first two high-order bits used to represent flags.<br>
+ These flags are the <strong class="strong">error</strong> bit and the <strong class="strong">warning</strong> bit.<br>
When neither of these flags are set, then the status is considered <strong class="strong">fine</strong>.
</p>
+
<p class="p">
These codes stop at the <code class="code">F_status_code_last</code> code.
</p>
+
<p class="p">
- Each code will be printed on its own line.
+ Each code will be printed on its own line.<br>
Errors regarding each code may be printed on its own line.
</p>
</div>
<head>
<title>Documentation - Status Code - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/status_code/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/status_code/status_code.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>
+ <a href="projects/status_code/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>
+ <a href="projects/status_code/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>
+ <a href="projects/status_code/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 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>
+ <a href="projects/status_code/status_code/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/status_code/status_code/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - (Kevux) Tools</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="Kevux tools project.">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Iptables, Open-Source, Project, Tools">
+ <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="projects/tools.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">(Kevux) Tools</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/tools/remove.html" class="nav-text link">remove</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/tacocat.html" class="nav-text link">tacocat</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/tools.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/tools.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">Project: (Kevux) Tools</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">(Kevux) Tools</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/tools/remove.html" class="link"><code class="code">remove</code></a></div>
+ <ol>
+ <li><a href="projects/tools/remove.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/tools/remove.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/tools/remove/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ <li>
+ <div><a href="projects/tools/tacocat.html" class="link"><code class="code">tacocat</code></a></div>
+ <ol>
+ <li><a href="projects/tools/tacocat.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/tools/tacocat.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/tools/tacocat/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - (Kevux) Tools - Remove</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="(Kevux) Remove program documentation.">
+ <meta name="keywords" content="FLL, Featureless, Kevin Day, Kevux, Linux, Library, Iptables, Open-Source, Remove, Tools">
+ <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="projects/tools/remove.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 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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/tools.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">(Kevux) Remove</div>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/remove.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/remove.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ <a href="projects/tools/remove/specifications.html" class="nav-text link">(Kevux) Remove</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/tools/remove.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/tools/remove.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">(Kevux) Remove Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">(Kevux) Remove</strong> program, called <code class="code">remove</code>, is a tool for deleting (removing) various file types.
+ </p>
+
+ <p class="p">
+ The <code class="code">remove</code> program supports simulate mode to pretend to delete, without actuallying removing files.
+ </p>
+
+ <p class="p">
+ This also provides the following standard programs designed to implement most, but not all, of the standard functionality:
+ </p>
+
+ <ul>
+ <li><code class="code">rm</code></li>
+ <li><code class="code">rmdir</code></li>
+ <li><code class="code">unlink</code></li>
+ </ul>
+ </div>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+Q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+E</code></td>
+ <td class="column"><code class="code">++error</code></td>
+ <td class="column">Decrease verbosity, using only error output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+N</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+
+ <p class="p">
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-A</code></td>
+ <td class="column"><code class="code">--accessed</code></td>
+ <td class="column">Remove by file last accessed date and time.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-b</code></td>
+ <td class="column"><code class="code">--block</code></td>
+ <td class="column">Remove by file type of block.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-C</code></td>
+ <td class="column"><code class="code">--changed</code></td>
+ <td class="column">Remove by file changed on date and time.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-c</code></td>
+ <td class="column"><code class="code">--character</code></td>
+ <td class="column">Remove by file type of character.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-O</code></td>
+ <td class="column"><code class="code">--different</code></td>
+ <td class="column">Remove by file owner by a user different from the current calling user.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-d</code></td>
+ <td class="column"><code class="code">--directory</code></td>
+ <td class="column">Remove by file type of directory.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-e</code></td>
+ <td class="column"><code class="code">--empty</code></td>
+ <td class="column">Remove directory by a specific empty or not empty state.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-o</code></td>
+ <td class="column"><code class="code">--fifo</code></td>
+ <td class="column">Remove by file type of FIFO.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-F</code></td>
+ <td class="column"><code class="code">--follow</code></td>
+ <td class="column">Remove the file being pointed to rather than the symbolic link itself.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-f</code></td>
+ <td class="column"><code class="code">--force</code></td>
+ <td class="column">Ignore non-existent files and never prompt.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-g</code></td>
+ <td class="column"><code class="code">--group</code></td>
+ <td class="column">Remove by file group ID or name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-l</code></td>
+ <td class="column"><code class="code">--link</code></td>
+ <td class="column">Remove by file type of link.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-m</code></td>
+ <td class="column"><code class="code">--mode</code></td>
+ <td class="column">Remove by file mode.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-p</code></td>
+ <td class="column"><code class="code">--prompt</code></td>
+ <td class="column">Prompt before removing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-r</code></td>
+ <td class="column"><code class="code">--recurse</code></td>
+ <td class="column">Traverse into directories when removing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--regular</code></td>
+ <td class="column">Remove by file type of regular.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--same</code></td>
+ <td class="column">Remove by file owner by the current calling user.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-S</code></td>
+ <td class="column"><code class="code">--simulate</code></td>
+ <td class="column">Simulate removal rather than actually removing.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-k</code></td>
+ <td class="column"><code class="code">--socket</code></td>
+ <td class="column">Remove by file type of socket.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-Y</code></td>
+ <td class="column"><code class="code">--stay</code></td>
+ <td class="column">Remove the symbolic link itself rather than the file being pointed to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-t</code></td>
+ <td class="column"><code class="code">--tree</code></td>
+ <td class="column">Remove entire specified directory tree.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-U</code></td>
+ <td class="column"><code class="code">--updated</code></td>
+ <td class="column">Remove by file last updated date and time.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-u</code></td>
+ <td class="column"><code class="code">--user</code></td>
+ <td class="column">Remove by file user ID or name.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"></td>
+ <td class="column"><code class="code">--allow_root</code></td>
+ <td class="column">Allow removal of the root directory '/'.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"></td>
+ <td class="column"><code class="code">--local</code></td>
+ <td class="column">Designate dates are in local time, unless the time zone is specified.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"></td>
+ <td class="column"><code class="code">--remember</code></td>
+ <td class="column">Remember paths of files already deleted so as to not potentially error out on already removed path.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"></td>
+ <td class="column"><code class="code">--unknown</code></td>
+ <td class="column">Remove by file type of unknown.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"></td>
+ <td class="column"><code class="code">--utc</code></td>
+ <td class="column">Designate dates are in UTC, unless the time zone is specified.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The parameters '<code class="code">--accessed</code>', '<code class="code">--changed</code>', '<code class="code">--group</code>', '<code class="code">--mode</code>', '<code class="code">--updated</code>', and '<code class="code">--user</code>' may be specified multiple times.
+ </p>
+
+ <p class="p">
+ The value passed to the parameter '<code class="code">--group</code>' may either be a GID or a group name.
+ </p>
+
+ <p class="p">
+ The value passed to the parameter '<code class="code">--user</code>' may either be a UID or a user name.
+ </p>
+
+ <p class="p">
+ The parameter '<code class="code">--empty</code>' supports the following values:
+ </p>
+
+ <ul>
+ <li>'<code class="code">not</code>': Remove directories that are not empty.</li>
+ <li>'<code class="code">not_fail</code>': Fail when attempting to remove directories that are not empty.</li>
+ <li>'<code class="code">only</code>': Remove directories that are empty.</li>
+ <li>'<code class="code">only_fail</code>': Fail when removing directoies that are empty.</li>
+ </ul>
+
+ <p class="p">
+ The parameter '<code class="code">--prompt</code>' supports the following values:
+ </p>
+
+ <ul>
+ <li>'<code class="code">each</code>': Operate in interactive mode, prompting for every file.</li>
+ <li>'<code class="code">follow</code>': Operate in interactive mode, prompting for every link that is being followed.</li>
+ <li>'<code class="code">never</code>': Do not operate in interactive mode.</li>
+ <li>'<code class="code">once</code>': Operate in interactive mode: prompting if removing 3 or more files.</li>
+ </ul>
+
+ <p class="p">
+ The first value to the parameter '<code class="code">--mode</code>' must be any of:
+ </p>
+
+ <ul>
+ <li>'<code class="code">~~</code>' or '<code class="code">different</code>': Mode matches different parts.</li>
+ <li>'<code class="code">==</code>' or '<code class="code">same</code>': Mode matches exactly.</li>
+ <li>'<code class="code">~=</code>' or '<code class="code">similar</code>': Mode matches the same parts.</li>
+ <li>'<code class="code"><></code>' or '<code class="code">not</code>': Mode does not match exactly.</li>
+ </ul>
+
+ <p class="p">
+ The second value to the parameter '<code class="code">--mode</code>' may be either a mode octal or a mode string, such as: '<code class="code">0751</code>' or '<code class="code">u+rwX,g+r</code>'.
+ </p>
+
+ <p class="p">
+ The date related parameters are: '<code class="code">--accessed</code>', '<code class="code">--changed</code>', and '<code class="code">--updated</code>'.
+ </p>
+
+ <p class="p">
+ Where '<code class="code">updated</code>' refers to when the contents of a file have been changed and '<code class="code">changed</code>' refers to when the file system data for that file have been changed.
+ </p>
+
+ <p class="p">
+ The first value to the date related parameters must be any of the following comparison operators:
+ </p>
+
+ <ul>
+ <li>'<code class="code">==' or 'equal</code>': Date match using an equal to operation.</li>
+ <li>'<code class="code"><' or 'less</code>': Date match using a less than operation.</li>
+ <li>'<code class="code"><=' or 'less_equal</code>': Date match using a less than or equal to operation.</li>
+ <li>'<code class="code">>' or 'more</code>': Date match using a more than operation.</li>
+ <li>'<code class="code">>=' or 'more_equal</code>': Date match using a more than or equal to operation.</li>
+ <li>'<code class="code"><>' or 'not</code>': Date match using a not equal to operation.</li>
+ </ul>
+
+ <p class="p">
+ Parameters with the '<code class="code"><</code>' and '<code class="code">>l</code>' characters will need to be quoted to prevent unintended redirecting.
+ </p>
+
+ <p class="p">
+ When the second value to the date related parameters must be a date.
+ </p>
+
+ <p class="p">
+ Valid dates for the date related parameters must be any of the following:
+ </p>
+
+ <ul>
+ <li>'<code class="code">now</code>': Use the current day and time.</li>
+ <li>'<code class="code">Time</code>': Use the Time format, such as '1234:5678'.</li>
+ <li>'<code class="code">EpochTime</code>': Use the EpochTime format, such as '1234::5678'.</li>
+ <li>'<code class="code">today</code>': Use the current day.</li>
+ <li>'<code class="code">tomorrow</code>': Use the next day.</li>
+ <li>'<code class="code">Unix Epoch</code>': Use the EpochTime format, such as '1672639985'.</li>
+ <li>'<code class="code">yesterday</code>': Use the previous day.</li>
+ </ul>
+
+ <p class="p">
+ Valid formats for the date related parameters must be any of the following:
+ </p>
+
+ <ul>
+ <li>'<code class="code">%Y/%m/%d %I:%M:%S %p %z</code>': A date like '2022/12/30 1:45:02 pm +0600'.</li>
+ <li>'<code class="code">%Y/%m/%d %H:%M:%S %z</code>': A date like '2022/12/30 13:45:02 +0600'.</li>
+ <li>'<code class="code">%Y/%m/%d %I:%M %p %z</code>': A date like '2022/12/30 1:45 pm +0600'.</li>
+ <li>'<code class="code">%Y/%m/%d %H:%M %z</code>': A date like '2022/12/30 13:45 +0600'.</li>
+ <li>'<code class="code">%Y/%m/%d %I %p %z</code>': A date like '2022/12/30 1 pm +0600'.</li>
+ <li>'<code class="code">%Y/%m/%d %H %z</code>': A date like '2022/12/30 13 +0600'.</li>
+ <li>'<code class="code">%Y/%m/%d %I:%M:%S %p</code>': A date like '2022/12/30 1:45:02 pm'.</li>
+ <li>'<code class="code">%Y/%m/%d %H:%M:%S</code>': A date like '2022/12/30 13:45:02'.</li>
+ <li>'<code class="code">%Y/%m/%d %I:%M %p</code>': A date like '2022/12/30 1:45 pm'.</li>
+ <li>'<code class="code">%Y/%m/%d %H:%M</code>': A date like '2022/12/30 13:45'.</li>
+ <li>'<code class="code">%Y/%m/%d %I %p</code>': A date like '2022/12/30 1 pm'.</li>
+ <li>'<code class="code">%Y/%m/%d %H</code>': A date like '2022/12/30 13'.</li>
+ <li>'<code class="code">%Y/%m/%d</code>': A date like '2022/12/30'.</li>
+ <li>'<code class="code">%Y/%m</code>': A date like '2022/12'.</li>
+ <li>'<code class="code">%Y/</code>': A date like '2022/'.</li>
+ </ul>
+
+ <p class="p">
+ Valid formats for the '<code class="code">Time</code>' and '<code class="code">EpochTime</code>' formats might look like the following:
+ </p>
+
+ <ul>
+ <li>'<code class="code">0::167242950220</code>': An EpochTime with an explicit year.</li>
+ <li>'<code class="code">1970:1672429502000000000</code>': A Time with an explicit year.</li>
+ <li>'<code class="code">::1672429502</code>': An EpochTime with an implicit year (relative to the UNIX Epoch).</li>
+ <li>'<code class="code">:1672429502000000000</code>': A Time with an implicit year (relative to the current year).</li>
+ </ul>
+
+ <p class="p">
+ The '<code class="code">--remember</code>' parameter accepts either yes or no to designate whether or not to remember already pocessed paths.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - (Kevux) Tools - Remove - Specifications</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="(Kevux) Remove program specifications.">
+ <meta name="keywords" content="FLL, Featureless, Kevin Day, Kevux, Linux, Library, Iptables, Open-Source, Remove, Tools, 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="projects/tools/remove/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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/tools/remove.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="projects/tools/remove.html" class="nav-text link">(Kevux) Remove</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/remove.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/remove.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/remove.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">(Kevux) Remove</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/tools/remove/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/tools/remove/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">(Kevux) Remove 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>.<br>
+ The <strong class="strong">(Kevux) Remove</strong> does not directly use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - (Kevux) Tools - TacocaT</title>
+
+ <base href="../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="(Kevux) TacocaT program documentation.">
+ <meta name="keywords" content="FLL, Featureless, Kevin Day, Kevux, Linux, Library, Iptables, Open-Source, TacocaT, Tools">
+ <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="projects/tools/tacocat.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 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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/tools.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Documentation</div>
+ <div class="nav-text unlink">(Kevux) TacocaT</div>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/tacocat.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/tacocat.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Specifications</div>
+ <a href="projects/tools/tacocat/specifications.html" class="nav-text link">(Kevux) TacocaT</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/tools/tacocat.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/tools/tacocat.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">(Kevux) TacocaT Documentation</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">(Kevux) TacocaT</strong> program, called <code class="code">tacocat</code>, is a tool for testing <abbr title="Featureless Linux Library">FLL</abbr> network capabilities.<br>
+ </p>
+ <p class="p">
+ This tools operates similar to <code class="code">netcat</code>, but it is not intended to replace <code class="code">netcat</code>.
+ </p>
+ </div>
+
+ <section id="parameters-standard" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Standard Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-h</code></td>
+ <td class="column"><code class="code">--help</code></td>
+ <td class="column">Print the help message.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+d</code></td>
+ <td class="column"><code class="code">++dark</code></td>
+ <td class="column">Output using colors that show up better on dark backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+l</code></td>
+ <td class="column"><code class="code">++light</code></td>
+ <td class="column">Output using colors that show up better on light backgrounds.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+n</code></td>
+ <td class="column"><code class="code">++no_color</code></td>
+ <td class="column">Do not print using color.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+Q</code></td>
+ <td class="column"><code class="code">++quiet</code></td>
+ <td class="column">Decrease verbosity, silencing most output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+E</code></td>
+ <td class="column"><code class="code">++error</code></td>
+ <td class="column">Decrease verbosity, using only error output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+N</code></td>
+ <td class="column"><code class="code">++normal</code></td>
+ <td class="column">Set verbosity to normal.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+V</code></td>
+ <td class="column"><code class="code">++verbose</code></td>
+ <td class="column">Increase verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+D</code></td>
+ <td class="column"><code class="code">++debug</code></td>
+ <td class="column">Enable debugging, significantly increasing verbosity beyond normal output.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">+v</code></td>
+ <td class="column"><code class="code">++version</code></td>
+ <td class="column">Print only the version number.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ </p>
+
+ <p class="p">
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ </p>
+ </div>
+ </section>
+
+ <section id="parameters-program" class="section">
+ <header class="section-header header separate">
+ <h2 class="section-title h h2">Program Parameters</h2>
+ </header>
+
+ <div class="section-content">
+ <div class="center">
+ <table class="table context-parameters">
+ <thead class="head set">
+ <tr class="row">
+ <th class="column">Short</th>
+ <th class="column">Long</th>
+ <th class="column">Description</th>
+ </tr>
+ </thead>
+
+ <tbody class="body set">
+ <tr class="row">
+ <td class="column"><code class="code">-a</code></td>
+ <td class="column"><code class="code">--as</code></td>
+ <td class="column">Designate a different name to send the file as.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-H</code></td>
+ <td class="column"><code class="code">--headers</code></td>
+ <td class="column">Print the headers on send or on receive.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-I</code></td>
+ <td class="column"><code class="code">--interval</code></td>
+ <td class="column">Specify a custom poll interval in milliseconds to use.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-M</code></td>
+ <td class="column"><code class="code">--max_buffer</code></td>
+ <td class="column">Specify a maximum buffer size to allow (in bytes) when receiving packets.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-r</code></td>
+ <td class="column"><code class="code">--receive</code></td>
+ <td class="column">Specify an address or socket file to listen to and a file to write to.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-R</code></td>
+ <td class="column"><code class="code">--resolve</code></td>
+ <td class="column">Specify a custom DNS resolution methodology.</td>
+ </tr>
+ <tr class="row">
+ <td class="column"><code class="code">-s</code></td>
+ <td class="column"><code class="code">--send</code></td>
+ <td class="column">Specify an address or socket file send transmit to and a file to read from.</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+
+ <p class="p">
+ The parameter '<code class="code">--max_buffer</code>' may be set to -1 to disable the maximum buffer size limit on receive.
+ </p>
+
+ <p class="p">
+ The parameters '<code class="code">--receive</code>' and '<code class="code">--send</code>' may either represent a network address or a local socket file.
+ </p>
+
+ <p class="p">
+ The <code class="code">--receive</code> and the <code class="code">--send</code> options require 2 additional parameters: <<code class="code">network / socket</code>><file>.
+ </p>
+
+ <ul>
+ <li><strong class="strong">network / socket</strong>: The network address or the socket file to use.
+ <li><strong class="strong">file</strong>: The local file to use to read from or to write to.
+ </ul>
+
+ <p class="p">
+ Specify a question mark '<code class="code">?</code>' (<code class="code">U+003F</code>) as the receive file name to use the file name provided by the sender.
+ </p>
+
+ <p class="p">
+ A local socket file must begin with an absolute path like '<code class="code">/var/www.example.com</code>' and '<code class="code">/var/example.socket</code>', or it must begin with a relative absolute path, like <code class="code">'./www.example.com'</code> and <code class="code">./example.socket</code>.
+ </p>
+
+ <p class="p">
+ Any address that does not begin with either a single slash '<code class="code">/</code>' (<code class="code">U+002F</code>)' or a dot and a single slash '<code class="code">./</code>' and (<code class="code">U+002E</code>) (<code class="code">U+002F</code>) is considered a network address.
+ </p>
+ </div>
+ </section>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Documentation - (Kevux) Tools - TacocaT - Specifications</title>
+
+ <base href="../../../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="(Kevux) TacocaT program specifications.">
+ <meta name="keywords" content="FLL, Featureless, Kevin Day, Kevux, Linux, Library, Iptables, Open-Source, Remove, TacocaT, 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="projects/tools/tacocat/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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects/tools/tacocat.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Documentation</div>
+ <a href="projects/tools/tacocat.html" class="nav-text link">(Kevux) TacocaT</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/tacocat.html#parameters-standard" class="nav-text link">Standard Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/tacocat.html#parameters-program" class="nav-text link">Program Parameters</a>
+ </div>
+ <div class="nav-item block">
+ <a href="projects/tools/tacocat.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">(Kevux) TacocaT</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">APIs</div>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/tools/tacocat/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/tools/tacocat/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">(Kevux) TacocaT 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>.<br>
+ The <strong class="strong">(Kevux) TacocaT</strong> does not directly use or provide any of these specifications.
+ </p>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
--- /dev/null
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <title>Project - UTF8</title>
+
+ <base href="../">
+
+ <meta charset="UTF-8">
+ <meta name="author" content="Kevin Day">
+ <meta name="description" content="UTF8 project.">
+ <meta name="keywords" content="Featureless, FLL, Kevin Day, Kevux, Linux, Library, Open-Source, Project, UTF-8">
+ <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="projects/utf8.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 projects">
+ <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 active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><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="projects.html" class="nav-text link back">Back</a>
+ </div>
+ <div class="nav-item block highlight unlink">
+ <div class="nav-text notice">Project</div>
+ <div class="nav-text unlink">UTF8</div>
+ </div>
+ <div class="nav-item block">
+ <div class="nav-text notice">Program</div>
+ <a href="projects/utf8/utf8.html" class="nav-text link">utf8</a>
+ </div>
+ <div class="nav-item block ellipses">
+ <a href="projects/utf8.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/utf8.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">Project: UTF8</h1>
+ </header>
+
+ <div class="main-content">
+ <p class="p">
+ The <strong class="strong">UTF8</strong> project provides the following programs:
+ </p>
+
+ <ol type="A">
+ <li>
+ <div><a href="projects/utf8/utf8.html" class="link"><code class="code">utf8</code></a></div>
+ <ol>
+ <li><a href="projects/utf8/utf8.html#parameters-standard" class="link">Standard Parameters</a></li>
+ <li><a href="projects/utf8/utf8.html#parameters-program" class="link">Program Parameters</a></li>
+ <li><a href="projects/utf8/utf8/specifications.html" class="link">Specifications</a></li>
+ </ol>
+ </li>
+ </ol>
+ </div>
+ </main>
+ </div>
+ </div>
+ </body>
+</html>
<head>
<title>Documentation - UTF8</title>
- <base href="../">
+ <base href="../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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.html">
+ <link rel="canonical" href="projects/utf8/utf8.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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/utf8.html" class="nav-text link back">Back</a>
</div>
<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#parameters-standard" class="nav-text link">Standard Parameters</a>
+ <a href="projects/utf8/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>
+ <a href="projects/utf8/utf8.html#parameters-program" class="nav-text link">Program Parameters</a>
</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>
+ <a href="projects/utf8/utf8/specifications.html" class="nav-text link">UTF8</a>
</div>
<div class="nav-item block">
<div class="nav-text notice">APIs</div>
</div>
<div class="nav-item block ellipses">
- <a href="documentation/utf8.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
- <a href="documentation/utf8.html" class="nav-text link close">Collapse Menu</a>
+ <a href="projects/utf8/utf8.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/utf8/utf8.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<div class="main-content">
<p class="p">
- The <strong class="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 class="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>.
+ The <strong class="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.<br>
+ The byte sequence can also be referred to as the binary representation of the code even though the byte sequence is considered text.<br>
+ The term <em class="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.<br>
+ The Unicode code point is the Unicode designation uniquely identifying that particular sequence.<br>
+ 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 class="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>
<td class="column">Print the help message.</td>
</tr>
<tr class="row">
+ <td class="column"><code class="code">+C</code></td>
+ <td class="column"><code class="code">++copyright</code></td>
+ <td class="column">Print the copyright.</td>
+ </tr>
+ <tr class="row">
<td class="column"><code class="code">+d</code></td>
<td class="column"><code class="code">++dark</code></td>
<td class="column">Output using colors that show up better on dark backgrounds.</td>
</tbody>
</table>
</div>
+
<p class="p">
- The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program. For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte sequence. The <code class="code">+Q/++quiet</code> will not suppress this output. The new line printed at the end of the program, is however, not printed. The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
+ The <code class="code">+Q/++quiet</code> parameter silences all output that is not the intent and purpose of the program.<br>
+ For example, the purpose of the <strong class="strong">utf8</strong> program is to print the Unicode code point or the <abbr title="Unicode Transformation Format 8-bit">UTF-8</abbr> byte code.<br>
+ The <code class="code">+Q/++quiet</code> will not suppress this output.<br>
+ The new line printed at the end of the program, is however, not printed.<br>
+ The <code class="code">+Q/++quiet</code> is ideal for using in scripting to help guarantee more consistent and controlled output.
</p>
+
<p class="p">
- The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes. The special color character codes tend to take up a lot of extra space and may slow down printing performance.
+ The <code class="code">+N/++no_color</code> simplifies the output to avoid the special color character codes.<br>
+ The special color character codes tend to take up a lot of extra space and may slow down printing performance.
</p>
</div>
</section>
</tbody>
</table>
</div>
+
<p class="p">
- This program establishes a pattern for some of the parameters. The parameters that represent a <em class="em">"from"</em> use lower case short characters and the parameters that represent a <em class="em">"to"</em> use upper case short characters. For short parameters that have both a <em class="em">"from"</em> and a <em class="em">"to"</em>, they use the same character with their case being different.
+ This program establishes a pattern for some of the parameters.<br>
+ The parameters that represent a <em class="em">"from"</em> use lower case short characters and the parameters that represent a <em class="em">"to"</em> use upper case short characters.<br>
+ For short parameters that have both a <em class="em">"from"</em> and a <em class="em">"to"</em>, they use the same character with their case being different.
</p>
+
<p class="p">
The default behavior is to assume the expected input is byte sequences from the command line to be output to the screen as codepoints.
</p>
+
<p class="p">
Multiple input sources are allowed but only a single output destination is allowed.
</p>
+
<p class="p">
When using the parameter <code class="code">--verify</code>, no data is printed and 0 is returned if valid or 1 is returned if invalid.
</p>
+
<p class="p">
- When using the parameter <code class="code">--to_combining</code> with the parameter <code class="code">--to_width</code>, the 'C' character is printed to represent the combining and the digits are used to represent widths. The combining characters should be considered 1-width by themselves or 0-width when combined.
+ When using the parameter <code class="code">--to_combining</code> with the parameter <code class="code">--to_width</code>, the 'C' character is printed to represent the combining and the digits are used to represent widths.<br>
+ The combining characters should be considered 1-width by themselves or 0-width when combined.
</p>
</div>
</section>
<head>
<title>Documentation - UTF8 - Specifications</title>
- <base href="../../">
+ <base href="../../../">
<meta charset="UTF-8">
<meta name="author" content="Kevin Day">
<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 rel="canonical" href="projects/utf8/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">
<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>
+ <div class="nav-item active"><a href="projects.html" class="nav-text link">Projects</a></div>
+ <div class="nav-item"><a href="documentation.html" class="nav-text link">Documentation</a></div>
</nav>
</div>
</div>
<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>
+ <a href="projects/utf8/utf8.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>
+ <a href="projects/utf8/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>
+ <a href="projects/utf8/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>
+ <a href="projects/utf8/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 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>
+ <a href="projects/utf8/utf8/specifications.html#nav-expanded" class="nav-text link open" title="Expand Menu">…</a>
+ <a href="projects/utf8/utf8/specifications.html" class="nav-text link close">Collapse Menu</a>
</div>
</nav>
</div>
<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 <abbr title="Featureless Linux Library">FLL</abbr> project provides several <a href="fll/specifications.html" class="link">specifications</a>.<br>
The <strong class="strong">UTF8</strong> does not directly use or provide any of these specifications.
</p>
</div>
The following is the link:
</p>
<ul>
- <li><a href="documents/website/2025/kevux.org-2025_01_11.tar.gz" class="link download">kevux.org (2025/01/11)</a> (<a href="documents/website/2025/kevux.org-2025_01_11.tar.sha256" class="link download">SHA256</a>) (<a href="documents/website/2025/kevux.org-2025_01_11.tar.asc" class="link download">PGP</a>)</li>
+ <li><a href="documents/website/2026/kevux.org-2026_01_01.tar.gz" class="link download">kevux.org (2026/01/01)</a> (<a href="documents/website/2026/kevux.org-2026_01_01.tar.sha256" class="link download">SHA256</a>) (<a href="documents/website/2026/kevux.org-2026_01_01.tar.asc" class="link download">PGP</a>)</li>
</ul>
<p class="p">
Most of the changes for this website are also made publicly available through repositories hosted on third-party websites and services.
<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="keywords" content="Featureless, FLL, Kevin Day, Kevux, 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">
<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 class="strong">Library Interface</strong> or a <strong class="strong">Software Interface</strong>.
+ One of the biggest problems with an <abbr title="Application Programming Interface">API</abbr> is the misuse 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 class="strong">Library Interface</strong> or a <strong class="strong">Software Interface</strong>.
</p>
<section class="section">