package dune-release

  1. Overview
  2. Docs

Module Dune_release.SosSource

Safe OS operations.

All the commands in that module can have side-effects. They also all take a --dry-run parameter which cause the side-effect to be discarded and to display a message instead. Some of these commands also have a `--force` option: this causes the message to be printed AND the side-effects to be caused.

Sourceval show : ?sandbox:bool -> ?action:[ `Done | `Skip ] -> ('a, Format.formatter, unit, (unit, 'b) result) format4 -> 'a
Sourceval cmd_error : Bos.Cmd.t -> string option -> Bos.OS.Cmd.status -> ('a, Rresult.R.msg) result

cmd_error cmd ~stderr status returns an error message describing the failing command cmd, the exit status status and, if existent, also the error message err_msg.

Sourceval run : dry_run:bool -> ?force:bool -> ?sandbox:bool -> Bos.Cmd.t -> (unit, error) result
Sourceval run_quiet : dry_run:bool -> ?force:bool -> ?sandbox:bool -> Bos.Cmd.t -> (unit, error) result

Same as run but redirects err and out to null

Sourceval run_io : dry_run:bool -> ?force:bool -> ?sandbox:bool -> default:'a -> Bos.Cmd.t -> Bos.OS.Cmd.run_in -> (Bos.OS.Cmd.run_out -> ('a, 'b) result) -> ('a, 'b) result
Sourceval run_out : dry_run:bool -> ?force:bool -> ?sandbox:bool -> ?err:Bos.OS.Cmd.run_err -> default:'a -> Bos.Cmd.t -> (Bos.OS.Cmd.run_out -> ('a, 'b) result) -> ('a, 'b) result
Sourcetype 'a response = {
  1. output : 'a;
  2. err_msg : string;
  3. status : Bos.OS.Cmd.status;
  4. run_info : Bos.OS.Cmd.run_info;
}
Sourceval run_out_err : dry_run:bool -> ?force:bool -> ?sandbox:bool -> default:('a * Bos.OS.Cmd.run_status) -> Bos.Cmd.t -> (Bos.OS.Cmd.run_out -> ('a * Bos.OS.Cmd.run_status, [> Rresult.R.msg ] as 'b) result) -> ('a response, 'b) result
Sourceval run_status : dry_run:bool -> ?force:bool -> ?sandbox:bool -> Bos.Cmd.t -> (Bos.OS.Cmd.status, error) result
Sourceval delete_dir : dry_run:bool -> ?force:bool -> Fpath.t -> (unit, error) result
Sourceval delete_path : dry_run:bool -> Fpath.t -> (unit, error) result
Sourceval read_file : dry_run:bool -> Fpath.t -> (string, error) result
Sourceval write_file : dry_run:bool -> ?force:bool -> Fpath.t -> string -> (unit, error) result
Sourceval with_dir : dry_run:bool -> Fpath.t -> ('a -> 'b) -> 'a -> ('b, error) result
Sourceval file_exists : dry_run:bool -> Fpath.t -> (bool, error) result
Sourceval dir_exists : dry_run:bool -> Fpath.t -> (bool, error) result
Sourceval file_must_exist : dry_run:bool -> Fpath.t -> (Fpath.t, error) result
Sourceval out : 'a -> 'a * Bos.OS.Cmd.run_status
Sourceval mkdir : dry_run:bool -> Fpath.t -> (bool, error) result
Sourceval cp : dry_run:bool -> rec_:bool -> force:bool -> src:Fpath.t -> dst:Fpath.t -> (unit, error) result

cp ~dry_run ~rec ~force ~src ~dst copies src to dst. If rec is true, copies directories recursively. If force is true, overwrite existing files. The usual force arguments from other functions in this module is renamed force_side_effects here.

Sourceval relativize : src:Fpath.t -> dst:Fpath.t -> (Fpath.t, error) result

relativize ~src ~dst return a relative path from src to dst. If such a path can't be expressed, i.e. srs and dst don't have a common root, returns an error.