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

ioc/modules/app.nix

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

ioc/modules/boot.nix

epnix.buildConfig.attrs

Extra attributes to pass to the derivation

Default value
{ }
Type

attribute set

Declared in

ioc/modules/outputs.nix

epnix.buildConfig.src

The source code for the top.

Defaults to the directory containing the flake.nix file.

Type

path

Declared in

ioc/modules/outputs.nix

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

ioc/modules/checks.nix

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

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

epnix.devShell.packages.*.commands

The various commands to document in the menu.

Default value
{ }
Type

attribute set of (submodule)

Declared in

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

epnix.devShell.packages.*.package

The package providing the specified commands.

Type

package

Declared in

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

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

ioc/modules/devshell.nix

epnix.devShell.scripts.<name>.text

Content of the script.

Type

string

Declared in

ioc/modules/devshell.nix

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

ioc/modules/base.nix

epnix.epics-base.releaseBranch

The release branch of epics-base to install

Default value
"7"
Type

one of “7”, “3”

Declared in

ioc/modules/base.nix

epnix.epics-base.releaseConfig

Configuration installed as RELEASE

Default value
{ }
Type

attribute set of (null or string)

Declared in

ioc/modules/base.nix

epnix.epics-base.siteConfig

Configuration installed as CONFIG_SITE

Default value
{ }
Type

attribute set of (null or string)

Declared in

ioc/modules/base.nix

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

ioc/modules/outputs.nix

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

ioc/modules/common.nix

epnix.meta.name

Name of this EPICS distribution

Type

string

Declared in

ioc/modules/meta.nix

epnix.meta.version

Version of this EPICS distribution

Default value
"0.0.1"
Type

string

Declared in

ioc/modules/meta.nix

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

ioc/modules/nixos-integration.nix

epnix.nixos.services.<name>.app

Name of the app to start the IOC with.

Type

string

Example
"my_exec"
Declared in

ioc/modules/nixos-integration.nix

epnix.nixos.services.<name>.config

Resulting configuration for the systemd service.

Type

attribute set (read only)

Declared in

ioc/modules/nixos-integration.nix

epnix.nixos.services.<name>.ioc

Name of the directory under iocBoot containing the start commands.

Type

string

Example
"iocMyDevice"
Declared in

ioc/modules/nixos-integration.nix

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

ioc/modules/nixos-integration.nix

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

ioc/modules/nixos-integration.nix

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

ioc/modules/nixos-integration.nix

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

ioc/modules/common.nix

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

ioc/modules/common.nix

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

ioc/modules/support

nixpkgs.overlays

Nixpkgs overlays to override the default packages used

Default value
[ ]
Type

list of unspecified value

Declared in

ioc/modules/nixpkgs.nix