CLI reference#

Use ibek --help and ibek <group> <command> --help for the installed version. The complete command reference below is generated from the CLI.

When to run each command#

Phase

Commands

Purpose

Container build

support generate-schema, support apt-install-runtime-packages

Describe support YAML and install declared runtime Debian packages.

Container build

ioc generate-schema, ioc extract-runtime-assets

Describe the image’s available entities and package its runtime files.

Container startup

runtime generate2, runtime place-files, runtime generate-autosave, ioc do-wait

Generate the instance, place its files, prepare autosave, and wait for hardware.

Development container

dev instance, ioc build-docker

Select a checked-out instance; experimentally execute Dockerfile steps.

Outside the IOC container

pattern add/update/check/restore/schema

Maintain runtime support and editor schemas in an instance repository.

These are intended environments, not enforced modes. Schema generation can also run outside a container with explicit input paths. Compiling EPICS modules is handled by the build recipes in ibek-support, not by a general-purpose ibek build command.

Runtime generation#

In an IOC image, the startup script normally runs the equivalent of:

ibek runtime generate2 /epics/ioc/config
ibek runtime place-files /epics/ioc/config
ibek runtime generate-autosave
ibek ioc do-wait

generate2 reads ioc.yaml then runtime.yaml when present in the supplied folder. Repeated --instance / -i options add files before those two; the first file supplies the IOC name and later files append entities. Without --definitions, support definitions are discovered recursively in $EPICS_ROOT/ibek-defs and the config folder. Supplying --definitions replaces that automatic discovery; repeat it for each required file.

Generation recreates the output directory (default /epics/runtime), writing st.cmd, ioc.subst, and any generated auxiliary files. Run place-files after generation: it copies top-level .proto / .protocol files into runtime/protocol, and .db / .template files into runtime/db.

PVI generation is enabled by default; --no-pvi disables it. --output changes the startup/substitution output directory, but does not relocate every runtime or PVI path. See Paths and environment.

The image’s startup script still expands substitutions with EPICS msi and launches the IOC executable. generate2 does not start the IOC. runtime generate remains available for legacy single-file invocations; use generate2 for new scripts.

Schema generation#

The three schema commands have different inputs:

# The format accepted by every *.ibek.support.yaml file
ibek support generate-schema --output ibek.support.schema.json

# IOC entities supplied by explicitly named support definitions
ibek ioc generate-schema --no-ibek-defs motor.ibek.support.yaml \
    --output ibek.ioc.schema.json

# Published image entities plus an instance's local runtime support
ibek pattern schema services/my-ioc

The first two print JSON to stdout when --output is omitted. ioc generate-schema includes definitions directly in /epics/ibek-defs by default; --no-ibek-defs disables that lookup. pattern schema instead uses the published schema for the instance’s image; see Vendor runtime support and Paths and environment for its cache behavior.

Development commands#

ibek dev instance /workspaces/my-services/services/my-ioc

This replaces /epics/ioc/config with a symlink to the instance’s config directory. It removes the previous directory or link, so use it in the development container with the instance configuration kept in version control.

dev support is a placeholder and raises NotImplementedError. ioc build-docker is experimental: it interprets supported Dockerfile steps inside the development container; it is not a substitute for building an image. ioc extract-runtime-assets moves files out of its source tree for speed; run it only in the disposable packaging stage intended by the image build.

Complete command reference#

ibek#

ibek Usage: ibek [OPTIONS] COMMAND [ARGS]... IOC Builder for EPICS and Kubernetes Provides support for building generic EPICS IOC container images and for running IOC instances in a Kubernetes cluster. ╭─ Options ────────────────────────────────────────────────────────────────────╮ --versionPrint the version of ibek and exit --install-completionInstall completion for the current shell. --show-completionShow completion for the current shell, to copy it or customize the installation.              --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ supportCommands for building support modules during container build        ioc    Commands for building generic IOCs during container build           runtimeCommands for building IOC instance startup files at container       runtime                                                             dev    Commands for working inside Generic IOC development containers      patternCommands for vendoring runtime-support patterns into a services     repo                                                                ╰──────────────────────────────────────────────────────────────────────────────╯
ibek Usage: ibek [OPTIONS] COMMAND [ARGS]... IOC Builder for EPICS and Kubernetes Provides support for building generic EPICS IOC container images and for running IOC instances in a Kubernetes cluster. ╭─ Options ────────────────────────────────────────────────────────────────────╮ --versionPrint the version of ibek and exit --install-completionInstall completion for the current shell. --show-completionShow completion for the current shell, to copy it or customize the installation.              --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ supportCommands for building support modules during container build        ioc    Commands for building generic IOCs during container build           runtimeCommands for building IOC instance startup files at container       runtime                                                             dev    Commands for working inside Generic IOC development containers      patternCommands for vendoring runtime-support patterns into a services     repo                                                                ╰──────────────────────────────────────────────────────────────────────────────╯

support#

support Usage: ibek support [OPTIONS] COMMAND [ARGS]... Commands for building support modules during container build ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ apt-install-runtime-packagesInstall packages from the list collected by    calls to add_runtime_packages                  generate-schema             Produce JSON global schema for all             <support_module>.ibek.support.yaml files       ╰──────────────────────────────────────────────────────────────────────────────╯
support Usage: ibek support [OPTIONS] COMMAND [ARGS]... Commands for building support modules during container build ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ apt-install-runtime-packagesInstall packages from the list collected by    calls to add_runtime_packages                  generate-schema             Produce JSON global schema for all             <support_module>.ibek.support.yaml files       ╰──────────────────────────────────────────────────────────────────────────────╯
apt-install-runtime-packages#
apt-install-runtime-packages Usage: ibek support apt-install-runtime-packages [OPTIONS] Install packages from the list collected by calls to add_runtime_packages ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
apt-install-runtime-packages Usage: ibek support apt-install-runtime-packages [OPTIONS] Install packages from the list collected by calls to add_runtime_packages ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate-schema#
generate-schema Usage: ibek support generate-schema [OPTIONS] Produce JSON global schema for all <support_module>.ibek.support.yaml files ╭─ Options ────────────────────────────────────────────────────────────────────╮ --output<path>The filename to write the schema to --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate-schema Usage: ibek support generate-schema [OPTIONS] Produce JSON global schema for all <support_module>.ibek.support.yaml files ╭─ Options ────────────────────────────────────────────────────────────────────╮ --output<path>The filename to write the schema to --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯

ioc#

ioc Usage: ibek ioc [OPTIONS] COMMAND [ARGS]... Commands for building generic IOCs during container build ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ build-docker          EXPERIMENTAL: Attempt to interpret the Dockerfile    and run it's commands                                inside the devcontainer. For internal, incremental   builds of the Dockerfile.                            generate-schema       Create a json schema from a number of                support_module.ibek.support.yaml                     files                                                extract-runtime-assetsFind all the runtime assets in an EPICS installation and copy them to a                                   new folder hierarchy for packaging into a container  runtime stage.                                       do-wait               Read the YAML list file which includes the devices   to wait for and execute the appropriate wait command for each device type.                                Currently only supports request to wait for          successful connection to a remote socket.            For now, unknown entry types (i.e. not               "ibek.wait_ip") are treated as a non-fatal warning.  ╰──────────────────────────────────────────────────────────────────────────────╯
ioc Usage: ibek ioc [OPTIONS] COMMAND [ARGS]... Commands for building generic IOCs during container build ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ build-docker          EXPERIMENTAL: Attempt to interpret the Dockerfile    and run it's commands                                inside the devcontainer. For internal, incremental   builds of the Dockerfile.                            generate-schema       Create a json schema from a number of                support_module.ibek.support.yaml                     files                                                extract-runtime-assetsFind all the runtime assets in an EPICS installation and copy them to a                                   new folder hierarchy for packaging into a container  runtime stage.                                       do-wait               Read the YAML list file which includes the devices   to wait for and execute the appropriate wait command for each device type.                                Currently only supports request to wait for          successful connection to a remote socket.            For now, unknown entry types (i.e. not               "ibek.wait_ip") are treated as a non-fatal warning.  ╰──────────────────────────────────────────────────────────────────────────────╯
build-docker#
build-docker Usage: ibek ioc build-docker [OPTIONS] EXPERIMENTAL: Attempt to interpret the Dockerfile and run it's commands inside the devcontainer. For internal, incremental builds of the Dockerfile. Useful for debugging the Dockerfile without having to build the whole container from outside of the IOC devcontainer. ╭─ Options ────────────────────────────────────────────────────────────────────╮ --start<int>The step to start at in the Dockerfile [default: 1]                           --stop<int>The step to stop at in the Dockerfile [default: 999]                        --dockerfile<path>The filepath to the Dockerfile to build          [default:                                        /home/runner/work/ibek/ibek/Dockerfile]          --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
build-docker Usage: ibek ioc build-docker [OPTIONS] EXPERIMENTAL: Attempt to interpret the Dockerfile and run it's commands inside the devcontainer. For internal, incremental builds of the Dockerfile. Useful for debugging the Dockerfile without having to build the whole container from outside of the IOC devcontainer. ╭─ Options ────────────────────────────────────────────────────────────────────╮ --start<int>The step to start at in the Dockerfile [default: 1]                           --stop<int>The step to stop at in the Dockerfile [default: 999]                        --dockerfile<path>The filepath to the Dockerfile to build          [default:                                        /home/runner/work/ibek/ibek/Dockerfile]          --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate-schema#
generate-schema Usage: ibek ioc generate-schema [OPTIONS] [definitions]... Create a json schema from a number of support_module.ibek.support.yaml files ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ definitions<path>File paths to one or more support module YAML     files                                             ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --output<path>The file path to the schema file to be written                          --ibek-defs--no-ibek-defsInclude definitions in              /epics/ibek-defs in generated       schema                              [default: ibek-defs]                --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate-schema Usage: ibek ioc generate-schema [OPTIONS] [definitions]... Create a json schema from a number of support_module.ibek.support.yaml files ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ definitions<path>File paths to one or more support module YAML     files                                             ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --output<path>The file path to the schema file to be written                          --ibek-defs--no-ibek-defsInclude definitions in              /epics/ibek-defs in generated       schema                              [default: ibek-defs]                --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
extract-runtime-assets#
extract-runtime-assets Usage: ibek ioc extract-runtime-assets [OPTIONS] {destination} [extras]... Find all the runtime assets in an EPICS installation and copy them to a new  folder hierarchy for packaging into a container runtime stage. This should be performed in a throw away container stage (runtime_prep) as it is destructive of the source folder, because it uses move for speed. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *destination<path>The root folder to extract assets into [required]                             extras     <path>list of files to also extract ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --source<path>The root folder to extract assets     from                                  [default: /epics]                     --defaults--no-defaultscopy the default assets [default: defaults]     --dry-run--no-dry-runshow what would happen [default: no-dry-run]  --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
extract-runtime-assets Usage: ibek ioc extract-runtime-assets [OPTIONS] {destination} [extras]... Find all the runtime assets in an EPICS installation and copy them to a new  folder hierarchy for packaging into a container runtime stage. This should be performed in a throw away container stage (runtime_prep) as it is destructive of the source folder, because it uses move for speed. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *destination<path>The root folder to extract assets into [required]                             extras     <path>list of files to also extract ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --source<path>The root folder to extract assets     from                                  [default: /epics]                     --defaults--no-defaultscopy the default assets [default: defaults]     --dry-run--no-dry-runshow what would happen [default: no-dry-run]  --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
do-wait#
do-wait Usage: ibek ioc do-wait [OPTIONS] Read the YAML list file which includes the devices to wait for and execute the appropriate wait command for each device type. Currently only supports request to wait for successful connection to a remote socket. For now, unknown entry  types (i.e. not "ibek.wait_ip") are treated as a non-fatal warning. ╭─ Options ────────────────────────────────────────────────────────────────────╮ --source<path>The YAML file containing the list of wait commands   to execute                                           [default: /epics/runtime/wait_list.yaml]             --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
do-wait Usage: ibek ioc do-wait [OPTIONS] Read the YAML list file which includes the devices to wait for and execute the appropriate wait command for each device type. Currently only supports request to wait for successful connection to a remote socket. For now, unknown entry  types (i.e. not "ibek.wait_ip") are treated as a non-fatal warning. ╭─ Options ────────────────────────────────────────────────────────────────────╮ --source<path>The YAML file containing the list of wait commands   to execute                                           [default: /epics/runtime/wait_list.yaml]             --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯

runtime#

runtime Usage: ibek runtime [OPTIONS] COMMAND [ARGS]... Commands for building IOC instance startup files at container runtime ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ generate2        An updated version of generate that supports multiple     instance files.                                           This allows a main ioc.yaml with entities from the        generic IOC image and                                     additional runtime.yaml with entities from the services   repository.                                               place-files      Place runtime artifacts (proto / db / ...) from an IOC    instance config                                           folder into their runtime search-path locations for IOC   boot.                                                     generate         LEGACY single-instance generate; superseded by            `generate2`.                                              generate-autosaveGenerate autosave request files from autosave settings    and positions                                             template files found in support module db folders. Allow  overrides                                                 from ibek-support/* and /epics/ioc/config folders.        ╰──────────────────────────────────────────────────────────────────────────────╯
runtime Usage: ibek runtime [OPTIONS] COMMAND [ARGS]... Commands for building IOC instance startup files at container runtime ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ generate2        An updated version of generate that supports multiple     instance files.                                           This allows a main ioc.yaml with entities from the        generic IOC image and                                     additional runtime.yaml with entities from the services   repository.                                               place-files      Place runtime artifacts (proto / db / ...) from an IOC    instance config                                           folder into their runtime search-path locations for IOC   boot.                                                     generate         LEGACY single-instance generate; superseded by            `generate2`.                                              generate-autosaveGenerate autosave request files from autosave settings    and positions                                             template files found in support module db folders. Allow  overrides                                                 from ibek-support/* and /epics/ioc/config folders.        ╰──────────────────────────────────────────────────────────────────────────────╯
generate2#
generate2 Usage: ibek runtime generate2 [OPTIONS] [config_folder] An updated version of generate that supports multiple instance files. This  allows a main ioc.yaml with entities from the generic IOC image and additional runtime.yaml with entities from the services repository. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ config_folder<directory>The IOC instance folder containing entity  yaml files                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --instance-i<file>Additional IOC instance entity yaml   files                                 --definitions<file>The filepath to a support module yaml file                                  --output-o<path>The folder to write the generated     runtime files to                      [default: /epics/runtime]             --pvi--no-pvigenerate pvi PVs and opi files [default: pvi]                 --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate2 Usage: ibek runtime generate2 [OPTIONS] [config_folder] An updated version of generate that supports multiple instance files. This  allows a main ioc.yaml with entities from the generic IOC image and additional runtime.yaml with entities from the services repository. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ config_folder<directory>The IOC instance folder containing entity  yaml files                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --instance-i<file>Additional IOC instance entity yaml   files                                 --definitions<file>The filepath to a support module yaml file                                  --output-o<path>The folder to write the generated     runtime files to                      [default: /epics/runtime]             --pvi--no-pvigenerate pvi PVs and opi files [default: pvi]                 --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
place-files#
place-files Usage: ibek runtime place-files [OPTIONS] {config_folder} Place runtime artifacts (proto / db / ...) from an IOC instance config folder  into their runtime search-path locations for IOC boot. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *config_folder<directory>The IOC instance config folder          containing runtime artifacts            [required]                              ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
place-files Usage: ibek runtime place-files [OPTIONS] {config_folder} Place runtime artifacts (proto / db / ...) from an IOC instance config folder  into their runtime search-path locations for IOC boot. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *config_folder<directory>The IOC instance config folder          containing runtime artifacts            [required]                              ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate#
generate Usage: ibek runtime generate [OPTIONS] {instance} {definitions}... LEGACY single-instance generate; superseded by `generate2`. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *instance   <path>The filepath to the ioc instance entity file [required]                                   *definitions<path>The filepath to a support module yaml file [required]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --output-o<path>The folder to write the generated runtime  files to                                   [default: /epics/runtime]                  --pvi--no-pvigenerate pvi PVs and opi files [default: pvi]                 --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate Usage: ibek runtime generate [OPTIONS] {instance} {definitions}... LEGACY single-instance generate; superseded by `generate2`. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *instance   <path>The filepath to the ioc instance entity file [required]                                   *definitions<path>The filepath to a support module yaml file [required]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --output-o<path>The folder to write the generated runtime  files to                                   [default: /epics/runtime]                  --pvi--no-pvigenerate pvi PVs and opi files [default: pvi]                 --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate-autosave#
generate-autosave Usage: ibek runtime generate-autosave [OPTIONS] [subst_file] Generate autosave request files from autosave settings and positions template  files found in support module db folders. Allow overrides from ibek-support/*  and /epics/ioc/config folders. CONVENTION: req template files must be in the support module db folder after the module is built. The template files must be named with the same stem as the db file that defines the PVs to be saved. The naming convention is: DbTemplateFileStem_positions.req : for autosave stage 0 settings DbTemplateFileStem_settings.req : for autosave stage 1 settings The steps are: 1. at build time "ibek support generate-links" creates symlinks to override    req files in /epics/autosave. These override req files come from individual    ibek-support folders 2. at runtime "ibek runtime generate-autosave" handles the remaining steps: 3. All req files in /epics/support/*/db/ are symlinked to /epics/autosave    except if that req file name already exists (from 1.) 4. All req files in /epics/ioc/config are symlinked to /epics/autosave    overwriting any existing req file (thus supplying instance overrides) 5. AutosaveGenerator generates two substitution files for settings and  positions.    These substitution files are the same as ioc.db except that they contain    the file names of the req templates instead of the db files. If ioc.db    contains a database template that has no corresponding req template, then    that line is omitted from the new substitution file. 6. Two req files are generated from the two substitution files using MSI. Where the database template has a full path, this will be stripped in substitution files created in step 5. At runtime autosave will be pointed at the /epics/autosave folder for its search path. There is an issue with name collisions that we will address if this ever arises. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ subst_file<path>[default: /epics/runtime/ioc.subst] ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
generate-autosave Usage: ibek runtime generate-autosave [OPTIONS] [subst_file] Generate autosave request files from autosave settings and positions template  files found in support module db folders. Allow overrides from ibek-support/*  and /epics/ioc/config folders. CONVENTION: req template files must be in the support module db folder after the module is built. The template files must be named with the same stem as the db file that defines the PVs to be saved. The naming convention is: DbTemplateFileStem_positions.req : for autosave stage 0 settings DbTemplateFileStem_settings.req : for autosave stage 1 settings The steps are: 1. at build time "ibek support generate-links" creates symlinks to override    req files in /epics/autosave. These override req files come from individual    ibek-support folders 2. at runtime "ibek runtime generate-autosave" handles the remaining steps: 3. All req files in /epics/support/*/db/ are symlinked to /epics/autosave    except if that req file name already exists (from 1.) 4. All req files in /epics/ioc/config are symlinked to /epics/autosave    overwriting any existing req file (thus supplying instance overrides) 5. AutosaveGenerator generates two substitution files for settings and  positions.    These substitution files are the same as ioc.db except that they contain    the file names of the req templates instead of the db files. If ioc.db    contains a database template that has no corresponding req template, then    that line is omitted from the new substitution file. 6. Two req files are generated from the two substitution files using MSI. Where the database template has a full path, this will be stripped in substitution files created in step 5. At runtime autosave will be pointed at the /epics/autosave folder for its search path. There is an issue with name collisions that we will address if this ever arises. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ subst_file<path>[default: /epics/runtime/ioc.subst] ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯

dev#

dev Usage: ibek dev [OPTIONS] COMMAND [ARGS]... Commands for working inside Generic IOC development containers ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ instanceSymlink an IOC instance config folder into /epics/ioc/config.      support enable a support module for development.                           ╰──────────────────────────────────────────────────────────────────────────────╯
dev Usage: ibek dev [OPTIONS] COMMAND [ARGS]... Commands for working inside Generic IOC development containers ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ instanceSymlink an IOC instance config folder into /epics/ioc/config.      support enable a support module for development.                           ╰──────────────────────────────────────────────────────────────────────────────╯
instance#
instance Usage: ibek dev instance [OPTIONS] {instance} Symlink an IOC instance config folder into /epics/ioc/config. Used in the devcontainer to allow the IOC instance to be run using /epics/ioc/starts.sh. Changes made to the config will be immediately available and also under version control. e.g. if instance is /workspaces/bl38p/iocs/bl38p-mo-panda-01 then we need: - /epics/ioc/config -> /workspaces/bl38p/iocs/bl38p-mo-panda-01/config ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *instance<directory>The filepath to the ioc instance entity file [required]                                   ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
instance Usage: ibek dev instance [OPTIONS] {instance} Symlink an IOC instance config folder into /epics/ioc/config. Used in the devcontainer to allow the IOC instance to be run using /epics/ioc/starts.sh. Changes made to the config will be immediately available and also under version control. e.g. if instance is /workspaces/bl38p/iocs/bl38p-mo-panda-01 then we need: - /epics/ioc/config -> /workspaces/bl38p/iocs/bl38p-mo-panda-01/config ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *instance<directory>The filepath to the ioc instance entity file [required]                                   ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
support#
support Usage: ibek dev support [OPTIONS] {module} enable a support module for development. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *module<path>The filepath to the support module to work on [required]                                    ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
support Usage: ibek dev support [OPTIONS] {module} enable a support module for development. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *module<path>The filepath to the support module to work on [required]                                    ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯

pattern#

pattern Usage: ibek pattern [OPTIONS] COMMAND [ARGS]... Commands for vendoring runtime-support patterns into a services repo ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ add    Vendor a pattern into an instance, writing files +                  runtime-lock.yaml + schema.                                         update Re-vendor a pattern to a new pinned version; refresh hashes +       schema.                                                             check  Verify vendored files match runtime-lock.yaml (vendor integrity).   restoreRevert vendored files to the version pinned in runtime-lock.yaml.   schema Generate the instance's ioc.schema.json and rewrite ioc.yaml's      header.                                                             ╰──────────────────────────────────────────────────────────────────────────────╯
pattern Usage: ibek pattern [OPTIONS] COMMAND [ARGS]... Commands for vendoring runtime-support patterns into a services repo ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Commands ───────────────────────────────────────────────────────────────────╮ add    Vendor a pattern into an instance, writing files +                  runtime-lock.yaml + schema.                                         update Re-vendor a pattern to a new pinned version; refresh hashes +       schema.                                                             check  Verify vendored files match runtime-lock.yaml (vendor integrity).   restoreRevert vendored files to the version pinned in runtime-lock.yaml.   schema Generate the instance's ioc.schema.json and rewrite ioc.yaml's      header.                                                             ╰──────────────────────────────────────────────────────────────────────────────╯
add#
add Usage: ibek pattern add [OPTIONS] {name} [instance] Vendor a pattern into an instance, writing files + runtime-lock.yaml + schema. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *name    <str>Pattern reference: name, e.g.  ibek-runtime-streamdevice:lakeshore340@1.0.0 [required]                                   instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --source-s<str>Override the library source URI (git URL or local   path)                                               --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
add Usage: ibek pattern add [OPTIONS] {name} [instance] Vendor a pattern into an instance, writing files + runtime-lock.yaml + schema. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ *name    <str>Pattern reference: name, e.g.  ibek-runtime-streamdevice:lakeshore340@1.0.0 [required]                                   instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --source-s<str>Override the library source URI (git URL or local   path)                                               --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
update#
update Usage: ibek pattern update [OPTIONS] [instance] Re-vendor a pattern to a new pinned version; refresh hashes + schema. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --name-n<str>Restrict to a single pattern by name (default: all in the lock)                                       --version-v<str>New pinned version to vendor --source-s<str>Override the library source URI (git URL or local  path)                                              --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
update Usage: ibek pattern update [OPTIONS] [instance] Re-vendor a pattern to a new pinned version; refresh hashes + schema. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --name-n<str>Restrict to a single pattern by name (default: all in the lock)                                       --version-v<str>New pinned version to vendor --source-s<str>Override the library source URI (git URL or local  path)                                              --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
check#
check Usage: ibek pattern check [OPTIONS] [instance] Verify vendored files match runtime-lock.yaml (vendor integrity). ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --allow-dirtyDowngrade hash mismatches to warnings (also enabled   by IBEK_ALLOW_DIRTY=1)                                --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
check Usage: ibek pattern check [OPTIONS] [instance] Verify vendored files match runtime-lock.yaml (vendor integrity). ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --allow-dirtyDowngrade hash mismatches to warnings (also enabled   by IBEK_ALLOW_DIRTY=1)                                --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
restore#
restore Usage: ibek pattern restore [OPTIONS] [instance] Revert vendored files to the version pinned in runtime-lock.yaml. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --name-n<str>Restrict to a single pattern by name (default: all in the lock)                                             --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
restore Usage: ibek pattern restore [OPTIONS] [instance] Revert vendored files to the version pinned in runtime-lock.yaml. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --name-n<str>Restrict to a single pattern by name (default: all in the lock)                                             --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
schema#
schema Usage: ibek pattern schema [OPTIONS] [instance] Generate the instance's ioc.schema.json and rewrite ioc.yaml's header. Fetches the published base schema for the instance's pinned image and merges the instance's vendored / local support entities into it. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯
schema Usage: ibek pattern schema [OPTIONS] [instance] Generate the instance's ioc.schema.json and rewrite ioc.yaml's header. Fetches the published base schema for the instance's pinned image and merges the instance's vendored / local support entities into it. ╭─ Arguments ──────────────────────────────────────────────────────────────────╮ instance<directory>The IOC instance folder (containing config/) [default: .]                                 ╰──────────────────────────────────────────────────────────────────────────────╯ ╭─ Options ────────────────────────────────────────────────────────────────────╮ --helpShow this message and exit. ╰──────────────────────────────────────────────────────────────────────────────╯