Conveniently open files such as PDFs in their default applications straigt from OCaml.
You can install the library using
$ opam install open
$ ocaml > #require "open";; > Open.in_default_app "/home/steffen/ocaml.svg";; - : bool = true // SVG viewer opens and displays ocaml.svg
The boolean returned by
Open.in_default_app indicates whether the open command exited normally:
> Open.in_default_app "/path/to/non-existent.file";; - : bool = false // nothing happens
Both absolute and relative paths are supported:
> Open.in_default_app ".";; - : bool = true // file manager displays current working directory
The tiny API is documented here.
Building from source
The library requires
dune (formerly known as jbuilder) to build, but has no other dependencies.
Building Library and Examples
make to build and
make test to see the library in action. This should open several files from the
There is also a more sophisticated example in
examples/graphviz that requires graphivz and Jane Street's
core (version v0.9.0 or higher). You can build & run it as follows:
jbuilder build @graphviz
Limitations and Implementation
The library has been tested under Linux, MacOS, and Cygwin. There is experimental support for native Windows, but this is untested.
The implementation uses
cygstarton Cygiwn, and
cmd starton Windows.
Suggestion and Contributions
Suggestions and contributions are always welcome. Feel free to submit pull requests.