Substitute %%ID%% strings in source files, in a similar fashion to what topkg does in the default
configuration.
This command is only meant to be called when a user pins a package to its development version. Especially
it replaces %%VERSION%% strings by the version obtained from the vcs. Currently only git is supported and
the version is obtained from the output of:
$ git describe --always --dirty --abbrev=7
dunesubst substitutes the variables that topkg substitutes with the default configuration:
- %%NAME%%, the name of the project (from the dune-project file)
- %%VERSION%%, output of gitdescribe--always--dirty--abbrev=7
- %%VERSION_NUM%%, same as %%VERSION%% but with a potential leading 'v' or 'V' dropped
- %%VCS_COMMIT_ID%%, commit hash from the vcs
- %%PKG_MAINTAINER%%, contents of the maintainer: field from the opam file
- %%PKG_AUTHORS%%, contents of the authors: field from the opam file
- %%PKG_HOMEPAGE%%, contents of the homepage: field from the opam file
- %%PKG_ISSUES%%, contents of the issues: field from the opam file
- %%PKG_DOC%%, contents of the doc: field from the opam file
- %%PKG_LICENSE%%, contents of the license: field from the opam file
- %%PKG_REPO%%, contents of the repo: field from the opam file
In order to call dunesubst when your package is pinned, add this line to the build: field of your opam
file:
[dune "subst"] {pinned}
Note that this command is meant to be called only from opam files and behaves a bit differently from
other dune commands. In particular it doesn't try to detect the root and must be called from the root of
the project.