Options
_module.args
Additional arguments passed to each module in addition to ones like lib
, config
, and pkgs
, modulesPath
.
This option is also available to all submodules. Submodules do not inherit args from their parent module, nor do they provide args to their parent module or sibling submodules. The sole exception to this is the argument name
which is provided by parent modules to a submodule and contains the attribute name the submodule is bound to, or a unique generated name if it is not bound to an attribute.
Some arguments are already passed by default, of which the following cannot be changed with this option: - {var}lib
: The nixpkgs library. - {var}config
: The results of all options after merging the values from all modules together. - {var}options
: The options declared in all modules. - {var}specialArgs
: The specialArgs
argument passed to evalModules
. - All attributes of {var}specialArgs
Whereas option values can generally depend on other option values thanks to laziness, this does not apply to imports
, which must be computed statically before anything else.
For this reason, callers of the module system can provide specialArgs
which are available during import resolution.
For NixOS, specialArgs
includes {var}modulesPath
, which allows you to import extra modules from the nixpkgs package tree without having to somehow make the module aware of the location of the nixpkgs
or NixOS directories. { modulesPath, ... }: { imports = [ (modulesPath + "/profiles/minimal.nix") ]; }
For NixOS, the default value for this option includes at least this argument: - {var}pkgs
: The nixpkgs package set according to the {option}nixpkgs.pkgs
option.
- Type
- lazy attribute set of raw value
- Declared in
-
- lib/modules.nix
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:
[ "inputs.myExampleApp" ]; epnix.applications.apps =
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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/boot.nix
epnix.buildConfig.attrs
Extra attributes to pass to the derivation
- Default value
-
{ }
- Type
- attribute set
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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 explicitely 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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/devshell.nix
epnix.devShell.packages.*.package
The package providing the specified commands.
- Type
- package
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/devshell.nix
epnix.devShell.scripts.<name>.text
Content of the script.
- Type
- string
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
"epics-base${releaseBranch}".override { pkgs.epnix.local_config_site = siteConfig; local_release = releaseConfig; }
- Type
- package
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/base.nix
epnix.epics-base.releaseConfig
Configuration installed as RELEASE
- Default value
-
{ }
- Type
- attribute set of (null or string)
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/base.nix
epnix.epics-base.siteConfig
Configuration installed as CONFIG_SITE
- Default value
-
{ }
- Type
- attribute set of (null or string)
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/common.nix
epnix.meta.name
Name of this EPICS distribution
- Type
- string
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/meta.nix
epnix.meta.version
Version of this EPICS distribution
- Default value
-
"0.0.1"
- Type
- string
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/nixos-integration.nix
epnix.nixos.services.<name>.config
Resulting configuration for the systemd service.
- Type
- attribute set (read only)
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/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
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/common.nix
epnix.support.modules
Support modules needed for this EPICS distribution.
Example:
with pkgs.epnix.support; [ calc ]; epnix.support.modules =
If specified as a string, the string is resolved from the available inputs.
For example:
[ "inputs.myExampleSup" ]; epnix.support.modules =
will refer to the myExampleSup
input of your flake.
- Default value
-
[ ]
- Type
- list of (string or path or package)
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/support
nixpkgs.overlays
Nixpkgs overlays to override the default packages used
- Default value
-
[ ]
- Type
- list of unspecified value
- Declared in
-
- /nix/store/6pyhsbjh6ihw8zk9yci3pjclgs52g4wl-source/ioc/modules/nixpkgs.nix