A tool to query opam files from shell scripts

opam-query is a tool that allows querying the OPAM package description
files from shell scripts, similar to oasis query.


opam-query can be installed via OPAM:

$ opam install opam-query


opam-query reads the OPAM package description from the provided filename
(opam from the current directory by default) and prints the requested fields,
one per line.

  • --name, --version and --dev-repo print the value of the correponding field.

  • --maintainer, --author, --homepage, --bug-report and --license print
    the values of the correponding field, concatenated by , .

  • --tags prints the values of the tags: field, concatenated by .

  • --name-version prints the values of name: and version:, concatenated by ..

  • --archive will attempt to determine a public download URL based on the value
    of dev-repo: and version: fields. Currently, only GitHub is supported.
    --tag-format allows to customize the tag name; $(version) is replaced
    by the value of the verison: field.

Automating package releases

opam-query can be used together with opam-publish
to automate the process of releasing OPAM packages. For example, if you have a Makefile
and are using GitHub, the following snippet will require nothing more than modifying
the version: field and running make release.

VERSION      := $$(opam query --version)
NAME_VERSION := $$(opam query --name-version)
ARCHIVE      := $$(opam query --archive)

  git tag -a v$(VERSION) -m "Version $(VERSION)."
  git push origin v$(VERSION)
  opam publish prepare $(NAME_VERSION) $(ARCHIVE)
  opam publish submit $(NAME_VERSION)
  rm -rf $(NAME_VERSION)

.PHONY: release


opam-query is distributed under the terms of MIT license.

Reverse Dependencies