package dune-release

  1. Overview
  2. Docs

Module Dune_release.TextSource

Text processing helpers.

Marked-up text files

Warning. Some of the following functions are not serious and can break on certain valid inputs in all sorts of fashion. To understand breakage bear in mind that they operate line-wise.

Sourcetype flavour = [
  1. | `Markdown
  2. | `Asciidoc
]

The type for text document formats.

Sourceval flavour_of_fpath : Fpath.t -> flavour option

flavour_of_fpath p determines a flavour according to the extension of p as follows:

  • Some `Markdown for .md
  • Some `Asciidoc for .asciidoc or .adoc
  • None otherwise
Sourceval head : ?flavour:flavour -> string -> (string * string) option

head ~flavour text extracts the head of the document text of flavour flavour (defaults to `Markdown).

The head is defined as follows:

  • Anything before the first header is discarded.
  • The first header is kept in the first component
  • Everything that follows until the next header of the same or greater level is kept discarding trailing blank lines.
Sourceval header_title : ?flavour:flavour -> string -> string

header_title ~flavour text extract the title of a header text of flavour flavour (defaults to `Markdown).

Toy change log parsing

Sourceval change_log_last_entry : ?flavour:flavour -> string -> (string * (string * string)) option

change_log_last_version ~flavour text tries to parse the last change log entry of text (i.e. the head of text) into Some (version, (header, text)), where (header,text) is the result of head and version a version number extracted from header (see dune-release-log(2) for details).

Sourceval change_log_file_last_entry : Fpath.t -> (string * (string * string), Bos_setup.R.msg) Bos_setup.result

change_log_file_last_entry file tries to parse the last change log entry of the file file using flavour_of_fpath and and change_log_last_entry.

Toy URI parsing

Sourceval split_uri : ?rel:bool -> string -> (string * string * string) option

split_uri uri splits uri into a triple (scheme, host, path). If rel is true (defaults to false), a leading "/" in path is removed.

Edit and page text

Sourceval edit_file : Fpath.t -> (int, Bos_setup.R.msg) Bos_setup.result

edit_file f invokes the tool mentioned in the EDITOR environment variable with f and returns the exit code of the program.

Sourceval find_pager : don't:bool -> (Bos_setup.Cmd.t option, Bos_setup.R.msg) Bos_setup.result

find ~no_pager is an optional pager command. If don't is true returns None. Otherwise first consults the PAGER environment variable, then tries less or more in that order. If the TERM environment variable is "dumb" or undefined unconditionaly returns None.

Sourcemodule Pp : sig ... end

Pretty printers.

OCaml

Innovation. Community. Security.