Conveniently open files such as PDFs in their default applications straigt from OCaml.
You can install the library using opam:
$ opam install open
Then in utop or ocaml,
$ 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.
The library requires dune (formerly known as jbuilder) to build, but has no other dependencies.
Run make to build and make test to see the library in action. This should open several files from the examples/basic folder.
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:
dune build @graphviz
The library has been tested under Linux, MacOS, and Cygwin. There is experimental support for native Windows, but this is untested. The implementation uses
xdg-openon Linuxopenon MacOScygstarton Cygiwn, andcmd starton Windows.
Suggestions and contributions are always welcome. Feel free to submit pull requests.