Featureless Linux Library Specification

FSS-000D (Basic Rule)

The version date of this specification is 2023/07/14.

This is a special case that follows fss-0002 (Basic List), and different FSS formats inside this fss-0002 (Basic List). This fss-0002 (Basic List) is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".

The Inner Content may be any of the following FSS formats: fss-0000 (Basic), fss-0001 (Extended), and fss-0003 (Extended List). The way in which each format is determined is first to see if the Inner Content Object would be a valid Extended List Object. If the Inner Content Object is not a valid fss-0003 (Extended List) Object, then check to see if it is an fss-0000 (Basic) or fss-0001 (Extended) Object.

The fss-0000 (Basic) and fss-0001 (Extended) Objects have the same format for Object names but the fss-0003 (Extended List) Object is slightly different. Anything that would match an fss-0003 (Extended List) Object must therefore be an fss-0003 (Extended List) Object.

This supports the use of iki-0000 (Unrestricted) but only within the Content of the outermost fss-0002 (Basic List). That is to say, the IKI is only processed once. Additional restrictions on the use of IKI syntax is allowed if explicitly defined in the implementing specification. This additional restriction may also include using a more restrictive IKI syntax, such as iki-0001 (Basic).

Anything implementing this specification may impose its own restrictions on when to determine if the Inner Content is what FSS format, based on Object names.

See the fss-0000 (Basic), fss-0001 (Extended), and fss-0003 (Extended List) specifications for details on the syntax rules.

Example:

# fss-000d
main:
  name "Boot Devices"

script:
  start {
    ip addr add 127.0.0.1/8 label lo dev lo;
    ip link set lo up;
  }

  stop {
    ip link set lo down;
  }

command:
  start mount -a -O no_netdev
  stop umount -arf -O no_netdev

Example Results:

Outer List Objects would be:
  1) main
  2) script
  3) command

Outer List Contents would be:
  1.1) name "Boot Devices"

  2.1) start {
         ip addr add 127.0.0.1/8 label lo dev lo;
         ip link set lo up;
       }

       stop {
         ip link set lo down;
       }

  3.1) begin mount -a -O no_netdev
       end umount -arf -O no_netdev

Inner Content Objects would be:
  1.1.1) name
  2.1.1) start
  2.1.2) stop
  3.1.1) begin
  3.1.2) end

Inner Content Contents would be (without breaking Content into its individual parts):
  1.1.1) Boot Devices
  2.1.1) ip addr add 127.0.0.1/8 label lo dev lo;
         ip link set lo up;
  2.1.2) ip link set lo down;
  3.1.1) mount -a -O no_netdev
  3.1.2) umount -arf -O no_netdev