opam-client

Client library for opam 2.1
Module OpamArg

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 -> ?default:bool -> ?replaced:string -> OpamCLIVersion.t -> validity
val cli_original : validity

Common helphers

val mk_flag : cli:OpamCLIVersion.Sourced.t -> validity -> ?section:string -> string list -> string -> bool Cmdliner.Term.t
val mk_flag_replaced : cli:OpamCLIVersion.Sourced.t -> ?section:string -> (validity * string list) list -> string -> bool Cmdliner.Term.t
val mk_opt : cli:OpamCLIVersion.Sourced.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.Sourced.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.Sourced.t -> ?section:string -> 'a -> (validity * 'a * string list * string) list -> 'a Cmdliner.Term.t
val mk_vflag_all : cli:OpamCLIVersion.Sourced.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.Sourced.t -> validity -> bool Cmdliner.Term.t

--short

--dot-profile

--http/ --git/ --local

val jobs_flag : OpamCLIVersion.Sourced.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

val confirm_enum : (validity * string * OpamStd.Config.answer) list

Confirmation level enum

Global options

type global_options = {
debug_level : int option;
verbose : int;
quiet : bool;
color : OpamStd.Config.when_ option;
opt_switch : string option;
confirm_level : OpamStd.Config.answer option;
yes : bool option;
strict : bool;
opt_root : OpamTypes.dirname option;
git_version : bool;
external_solver : string option;
use_internal_solver : bool;
cudf_file : string option;
solver_preferences : string option;
best_effort : bool;
safe_mode : bool;
json : string option;
no_auto_upgrade : bool;
working_dir : bool;
ignore_pin_depends : bool;
cli : OpamCLIVersion.t;
}

Type for global options

Global options

val apply_global_options : OpamCLIVersion.Sourced.t -> 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

Build options

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

Install and reinstall options

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

Applly build options

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

Lock options

val lock_suffix : ?section:string -> OpamCLIVersion.Sourced.t -> string Cmdliner.Term.t

Package listing and filtering options

val package_selection_section : string

Man section name

Build a package selection filter

val package_listing_section : string

Man section name

val package_listing : OpamCLIVersion.Sourced.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

Repository name converter

URL converter

Filename converter

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

Filename converter also accepting "-" for stdin/stdout

Dirnam converter

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

Package name converter

Package version converter

name{.version} (or name=version)

val package_with_version : OpamTypes.package Cmdliner.Arg.converter

name.version (or name=version)

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

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"

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.Sourced.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.

type 'a default = [> `default of string ] as 'a
val mk_subcommands_with_default : cli:OpamCLIVersion.Sourced.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.Sourced.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.Sourced.t -> ?defaults:(string * string) list -> 'a subcommands -> Cmdliner.Manpage.block list

mk_subdoc cmds is the documentation block for cmds.

val make_command_alias : cli:OpamCLIVersion.Sourced.t -> ('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 : cli:OpamCLIVersion.Sourced.t -> validity -> string -> doc:string -> man:Cmdliner.Manpage.block list -> ( unit -> unit ) Cmdliner.Term.t -> command
val mk_command_ret : cli:OpamCLIVersion.Sourced.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

Environment variables

val preinit_opam_env_variables : unit -> unit
val init_opam_env_variabes : OpamCLIVersion.Sourced.t -> unit
val scrubbed_environment_variables : string list