package opam-client

  1. Overview
  2. Docs

Command-line argument parsers and helpers

Helpers and argument constructors

CLI versioning

type validity
val cli2_0 : OpamCLIVersion.t
val cli2_1 : OpamCLIVersion.t
val cli_from : OpamCLIVersion.t -> validity
val cli_between : OpamCLIVersion.t -> ?replaced:string -> OpamCLIVersion.t -> validity
val cli_original : validity

Common helphers

val mk_flag : cli:OpamCLIVersion.t -> validity -> ?section:string -> string list -> string -> bool Cmdliner.Term.t
val mk_opt : cli:OpamCLIVersion.t -> validity -> ?section:string -> ?vopt:'a -> string list -> string -> string -> 'a Cmdliner.Arg.converter -> 'a -> 'a Cmdliner.Term.t
val mk_opt_all : cli:OpamCLIVersion.t -> validity -> ?section:string -> ?vopt:'a -> ?default:'a list -> string list -> string -> string -> 'a Cmdliner.Arg.converter -> 'a list Cmdliner.Term.t
val mk_vflag : cli:OpamCLIVersion.t -> ?section:string -> 'a -> (validity * 'a * string list * string) list -> 'a Cmdliner.Term.t
val mk_vflag_all : cli:OpamCLIVersion.t -> ?section:string -> ?default:'a list -> (validity * 'a * string list * string) list -> 'a list Cmdliner.Term.t
val dir_sep : string
val escape_path : string -> string

Flags

val print_short_flag : OpamCLIVersion.t -> validity -> bool Cmdliner.Term.t

--short

val shell_opt : OpamCLIVersion.t -> validity -> OpamTypes.shell option Cmdliner.Term.t

--shell

val dot_profile_flag : OpamCLIVersion.t -> validity -> OpamTypes.filename option Cmdliner.Term.t

--dot-profile

val repo_kind_flag : OpamCLIVersion.t -> validity -> OpamUrl.backend option Cmdliner.Term.t

--http/ --git/ --local

val jobs_flag : OpamCLIVersion.t -> validity -> int option Cmdliner.Term.t

--jobs

val name_list : OpamTypes.name list Cmdliner.Term.t

package names

val param_list : string list Cmdliner.Term.t

parameters

val atom_list : OpamFormula.atom list Cmdliner.Term.t

package list with optional constraints

val nonempty_atom_list : OpamFormula.atom list Cmdliner.Term.t

package list with optional constraints

val atom_or_local_list : [ `Atom of OpamTypes.atom | `Filename of OpamTypes.filename | `Dirname of OpamTypes.dirname ] list Cmdliner.Term.t
val atom_or_dir_list : [ `Atom of OpamTypes.atom | `Dirname of OpamTypes.dirname ] list Cmdliner.Term.t
val arg_list : string -> string -> 'a Cmdliner.Arg.converter -> 'a list Cmdliner.Term.t

Generic argument list builder

val nonempty_arg_list : string -> string -> 'a Cmdliner.Arg.converter -> 'a list Cmdliner.Term.t

Generic argument list builder

Global options

type global_options = {
  1. debug_level : int option;
  2. verbose : int;
  3. quiet : bool;
  4. color : [ `Always | `Never | `Auto ] option;
  5. opt_switch : string option;
  6. yes : bool;
  7. strict : bool;
  8. opt_root : OpamTypes.dirname option;
  9. git_version : bool;
  10. external_solver : string option;
  11. use_internal_solver : bool;
  12. cudf_file : string option;
  13. solver_preferences : string option;
  14. best_effort : bool;
  15. safe_mode : bool;
  16. json : string option;
  17. no_auto_upgrade : bool;
  18. working_dir : bool;
  19. ignore_pin_depends : bool;
  20. cli : OpamCLIVersion.t;
}

Type for global options

val global_options : OpamCLIVersion.t -> global_options Cmdliner.Term.t

Global options

val apply_global_options : global_options -> unit

Apply global options

Build options

type build_options

Abstract type for build options

val man_build_option_section : Cmdliner.Manpage.block list
val build_options : OpamCLIVersion.t -> build_options Cmdliner.Term.t

Build options

val assume_built : OpamCLIVersion.t -> bool Cmdliner.Term.t

Install and reinstall options

val recurse : OpamCLIVersion.t -> bool Cmdliner.Term.t
val subpath : OpamCLIVersion.t -> string option Cmdliner.Term.t
val apply_build_options : build_options -> unit

Applly build options

val locked : OpamCLIVersion.t -> string -> bool Cmdliner.Term.t

Lock options

val lock_suffix : OpamCLIVersion.t -> string -> string Cmdliner.Term.t

Package listing and filtering options

val package_selection_section : string

Man section name

val package_selection : OpamCLIVersion.t -> OpamListCommand.selector list Cmdliner.Term.t

Build a package selection filter

val package_listing_section : string

Man section name

val package_listing : OpamCLIVersion.t -> (force_all_versions:bool -> OpamListCommand.package_listing_format) Cmdliner.Term.t

Package selection filter based on the current state of packages (installed, available, etc.)

Converters

val repository_name : OpamTypes.repository_name Cmdliner.Arg.converter

Repository name converter

val url : OpamTypes.url Cmdliner.Arg.converter

URL converter

val filename : OpamTypes.filename Cmdliner.Arg.converter

Filename converter

val existing_filename_or_dash : OpamTypes.filename option Cmdliner.Arg.converter

Filename converter also accepting "-" for stdin/stdout

val dirname : OpamTypes.dirname Cmdliner.Arg.converter

Dirnam converter

val existing_filename_dirname_or_dash : OpamFilename.generic_file option Cmdliner.Arg.converter
val positive_integer : int Cmdliner.Arg.converter
val package_name : OpamTypes.name Cmdliner.Arg.converter

Package name converter

val package_version : OpamTypes.version Cmdliner.Arg.converter

Package version converter

val package : (OpamTypes.name * OpamTypes.version option) Cmdliner.Arg.converter

name{.version} (or name=version)

val package_with_version : OpamTypes.package Cmdliner.Arg.converter

name.version (or name=version)

val atom : OpamTypes.atom Cmdliner.Arg.converter

name{(.|=|!=|>|<|>=|<=)version} converter

val atom_or_local : [ `Atom of OpamTypes.atom | `Filename of OpamTypes.filename | `Dirname of OpamTypes.dirname ] Cmdliner.Arg.converter

Accepts atom but also (explicit) file and directory names

val atom_or_dir : [ `Atom of OpamTypes.atom | `Dirname of OpamTypes.dirname ] Cmdliner.Arg.converter
val dep_formula : OpamTypes.formula Cmdliner.Arg.converter

Formula, in the same format as depends: in opam files

val variable_bindings : (OpamVariable.t * string) list Cmdliner.Arg.converter

var=value,... argument

val warn_selector : (int * bool) list Cmdliner.Arg.converter

Warnings string "+3..10-4"

type 'a default = [> `default of string ] as 'a
val enum_with_default : (string * 'a default) list -> 'a Cmdliner.Arg.converter

Enumeration with a default command

val opamlist_columns : OpamListCommand.output_format list Cmdliner.Arg.converter

Subcommands

type 'a subcommand = validity * string * 'a * string list * string

A subcommand cmds, v, args, doc is the subcommand cmd, using the documentation doc and the list of documentation parameters args. If the subcommand is selected, return v value.

type 'a subcommands = 'a subcommand list
val mk_subcommands : cli:OpamCLIVersion.t -> 'a subcommands -> 'a option Cmdliner.Term.t * string list Cmdliner.Term.t

subcommands cmds are the terms cmd and params. cmd parses which sub-commands in cmds is selected and params parses the remaining of the command-line parameters as a list of strings.

val mk_subcommands_with_default : cli:OpamCLIVersion.t -> 'a default subcommands -> 'a option Cmdliner.Term.t * string list Cmdliner.Term.t

Same as mk_subcommand but use the default value if no sub-command is selected.

val bad_subcommand : cli:OpamCLIVersion.t -> 'a default subcommands -> (string * 'a option * string list) -> 'b Cmdliner.Term.ret

bad_subcommand cmds cmd is a command return value denoting a parsing error of sub-commands.

val mk_subdoc : cli:OpamCLIVersion.t -> ?defaults:(string * string) list -> 'a subcommands -> Cmdliner.Manpage.block list

mk_subdoc cmds is the documentation block for cmds.

val make_command_alias : ('a Cmdliner.Term.t * Cmdliner.Term.info) -> ?options:string -> string -> 'a Cmdliner.Term.t * Cmdliner.Term.info

Create an alias for an existing command. options can be used to add extra options after the original command in the doc (eg like `unpin` is an alias for `pin remove`).

Commands

type command = unit Cmdliner.Term.t * Cmdliner.Term.info
val mk_command : OpamCLIVersion.t -> validity -> string -> doc:string -> man:Cmdliner.Manpage.block list -> (unit -> unit) Cmdliner.Term.t -> command
val mk_command_ret : OpamCLIVersion.t -> validity -> string -> doc:string -> man:Cmdliner.Manpage.block list -> (unit -> unit Cmdliner.Term.ret) Cmdliner.Term.t -> command

Documentation

val global_option_section : string
val help_sections : Cmdliner.Manpage.block list
OCaml

Innovation. Community. Security.