IOC options reference¶
Options¶
epnix.applications.apps
¶
Applications to include in this EPICS distribution
If specified as a string, the string is resolved from the available inputs.
For example:
epnix.applications.apps = [ "inputs.myExampleApp" ];
will refer to the myExampleApp
input of your flake.
Note that due to EPICS conventions, your application names must end
with App
.
- Default value
[ ]
- Type
list of (string or path or package)
- Declared in
epnix.boot.iocBoots
¶
Additional iocBoot directories to include in this EPICS distribution.
Note that the iocBoot directory is already included by default.
This option support the same types of arguments as
epnix.support.modules
. Please refer to its documentation for more
information.
- Default value
[ ]
- Type
list of (string or path or package)
- Declared in
epnix.buildConfig.attrs
¶
Extra attributes to pass to the derivation
- Default value
{ }
- Type
attribute set
- Declared in
epnix.buildConfig.src
¶
The source code for the top.
Defaults to the directory containing the flake.nix
file.
- Type
path
- Declared in
epnix.checks.imports
¶
A list of .nix
files containing integration tests.
Alternatively, a raw configuration can be specified.
Please refer to the documentation book guide “Writing integration
tests” for instructions on how to write these .nix
files.
- Default value
[ ]
- Type
list of (path or (attribute set) or function that evaluates to a(n) (attribute set))
- Example
[./checks/simple.nix]
- Declared in
epnix.devShell.attrs
¶
Extra attributes to pass as-is to the mkShell
function.
See the nixpkgs documentation on mkShell
for more information.
- Default value
{ }
- Type
attribute set
- Declared in
epnix.devShell.environment.variables
¶
A set of environment variables used in the development shell.
The value of each variable can be either a string or a list of strings. The latter is concatenated, interspersed with colon characters.
If null is given, the environment variable is explicitly unset, preventing said environment variable to “leak” from the host environment to the development shell.
- Default value
{ }
- Type
attribute set of (null or string or list of string)
- Example
{ EPICS_CA_ADDR_LIST = "localhost"; }
- Declared in
epnix.devShell.packages
¶
A list of packages and their command description to add into the development shell.
- Type
list of (submodule)
- Example
[ { package = pkg.poetry; category = "development tools"; } { package = pkg.hello; commands.hello = { description = "Say hello in the terminal"; category = "miscellaneous"; }; } ]
- Declared in
epnix.devShell.packages.*.category
¶
Set a free text category under which this command is grouped and shown in the help menu.
- Default value
"general commands"
- Type
string
- Example
"development tools"
- Declared in
epnix.devShell.packages.*.commands
¶
The various commands to document in the menu.
- Default value
{ }
- Type
attribute set of (submodule)
- Declared in
epnix.devShell.packages.*.commands.<name>.category
¶
Set a free text category under which this command is grouped and shown in the help menu.
If unspecified, defaults to the category of the package.
- Type
string
- Example
"development tools"
- Declared in
epnix.devShell.packages.*.commands.<name>.description
¶
Description of this specific command.
This description will be put in the development shell menu.
- Default value
""
- Type
string
- Declared in
epnix.devShell.packages.*.package
¶
The package providing the specified commands.
- Type
package
- Declared in
epnix.devShell.scripts
¶
A set of shell scripts to add to the development shell.
- Type
attribute set of (submodule)
- Example
{ hello-world = { category = "miscellaneous"; description = "Say hello in the terminal"; text = '' echo 'Hello, World!' ''; }; }
- Declared in
epnix.devShell.scripts.<name>.category
¶
Set a free text category under which this command is grouped and shown in the help menu.
- Default value
"general commands"
- Type
string
- Example
"development tools"
- Declared in
epnix.devShell.scripts.<name>.description
¶
Description of this specific command.
This description will be put in the development shell menu.
- Default value
""
- Type
string
- Declared in
epnix.devShell.scripts.<name>.text
¶
Content of the script.
- Type
string
- Declared in
epnix.epics-base.package
¶
Package to use for epics-base.
Defaults to the official distribution from the given release branch and with the given RELEASE and CONFIG_SITE.
- Default value
pkgs.epnix."epics-base${releaseBranch}".override { local_config_site = siteConfig; local_release = releaseConfig; }
- Type
package
- Declared in
epnix.epics-base.releaseBranch
¶
The release branch of epics-base to install
- Default value
"7"
- Type
one of “7”, “3”
- Declared in
epnix.epics-base.releaseConfig
¶
Configuration installed as RELEASE
- Default value
{ }
- Type
attribute set of (null or string)
- Declared in
epnix.epics-base.siteConfig
¶
Configuration installed as CONFIG_SITE
- Default value
{ }
- Type
attribute set of (null or string)
- Declared in
epnix.generatedOverlay
¶
A generated overlay which has your package inside pkgs.epnix.support
.
- Type
function that evaluates to a(n) function that evaluates to a(n) (attribute set)
- Declared in
epnix.inputs
¶
The flake inputs of your project.
This allows resolving things like "inputs.myExampleApp"
in the
epnix.applications.apps
configuration option.
- Type
attribute set
- Declared in
epnix.meta.name
¶
Name of this EPICS distribution
- Type
string
- Declared in
epnix.meta.version
¶
Version of this EPICS distribution
- Default value
"0.0.1"
- Type
string
- Declared in
epnix.nixos.services
¶
Services for which to create a systemd service config.
- Type
attribute set of (submodule)
- Example
{ ioc = { app = "examples"; ioc = "iocExamples"; }; }
- Declared in
epnix.nixos.services.<name>.app
¶
Name of the app to start the IOC with.
- Type
string
- Example
"my_exec"
- Declared in
epnix.nixos.services.<name>.config
¶
Resulting configuration for the systemd service.
- Type
attribute set (read only)
- Declared in
epnix.nixos.services.<name>.ioc
¶
Name of the directory under iocBoot
containing the start commands.
- Type
string
- Example
"iocMyDevice"
- Declared in
epnix.nixos.services.<name>.procServ.options
¶
Extra command-line options to pass to procServ.
Note: using lib.mkForce
will override the default options needed
for the systemd service to work. If you wish to do this, you will
need to specify needed arguments like foreground
and chdir
.
- Default value
{ }
- Type
attribute set of (string or signed integer or boolean or list of string)
- Example
{ allow = true; info-file = "/var/run/ioc/procServ_info"; }
- Declared in
epnix.nixos.services.<name>.procServ.port
¶
Port where the procServ utility will listen.
- Default value
2000
- Type
16 bit unsigned integer; between 0 and 65535 (both inclusive)
- Declared in
epnix.nixos.services.<name>.startCommandsFile
¶
Name of the file containing the EPICS start commands.
- Default value
"st.cmd"
- Type
string
- Example
"other_st.cmd"
- Declared in
epnix.outputs
¶
Contains an attribute set of build-products for this distribution.
Notable examples include:
build
The actual build of this distribution.
- Default value
{ }
- Type
attribute set of package
- Declared in
epnix.pkgs
¶
Contains the set of packages effectively used by this distribution.
This means for example that the epics-base
package will refer to the
release branch 3 or 7, depending on the
epnix.epics-base.releaseBranch
option value, and so on.
These packages will be available as the legacyPackages
flake output.
This option is read-only. To modify a set of packages, please use the
nixpkgs.overlays
option.
- Default value
<the-effective-used-packages>
- Type
attribute set (read only)
- Declared in
epnix.support.modules
¶
Support modules needed for this EPICS distribution.
Example:
epnix.support.modules = with pkgs.epnix.support; [ calc ];
If specified as a string, the string is resolved from the available inputs.
For example:
epnix.support.modules = [ "inputs.myExampleSup" ];
will refer to the myExampleSup
input of your flake.
- Default value
[ ]
- Type
list of (string or path or package)
- Declared in
nixpkgs.overlays
¶
Nixpkgs overlays to override the default packages used
- Default value
[ ]
- Type
list of unspecified value
- Declared in