Skip to content

Handle substitute usage in IOC template files #171

Description

@guirodrigueslima

Hello,

We are currently experiencing an issue at Sirius when instantiating some template files that use the substitute function.

We have noticed that several files use the substitute function, which is processed by msi during the build process to generate database (.db) files. However, these template files are also being used directly by the IOC.

Initially, I thought that Diamond was generating the databases during the build process. However, after looking at the Makefile, I noticed that the template files are not installed in a way that would allow them to be processed by msi beforehand.

I also noticed that ibek-support, which is used by epics-container, is using the same template files that contain the substitute function:

https://github.com/epics-containers/ibek-support/blob/53201753b0d6f3b7358deb8fecbcc2c04bc5d426/pmac/pmac.ibek.support.yaml#L980

In this case, I believe this is causing errors during IOC startup, since the dbLoadTemplate function does not process the substitute function. The substitution needs to be performed beforehand by msi during the build process.

Therefore, would it be more appropriate to:

  1. remove the use of substitute from these template files; or
  2. modify the Makefile so that the .db files are generated during the build process using msi, and then installed so that they can be loaded directly by the IOC?

Is there a specific reason for keeping substitute in the templates, or would it be possible to adopt one of these approaches?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions