package opam-format
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Format library for opam 2.0
Install
dune-project
Dependency
Authors
-
VVincent Bernardoff <vb@luminar.eu.org>
-
RRaja Boujbel <raja.boujbel@ocamlpro.com>
-
RRoberto Di Cosmo <roberto@dicosmo.org>
-
TThomas Gazagnaire <thomas@gazagnaire.org>
-
LLouis Gesbert <louis.gesbert@ocamlpro.com>
-
FFabrice Le Fessant <Fabrice.Le_fessant@inria.fr>
-
AAnil Madhavapeddy <anil@recoil.org>
-
GGuillem Rieu <guillem.rieu@ocamlpro.com>
-
RRalf Treinen <ralf.treinen@pps.jussieu.fr>
-
FFrederic Tuong <tuong@users.gforge.inria.fr>
Maintainers
Sources
2.0.1.tar.gz
md5=1e55c234fa09e678e8115a31f3ec2a05
sha512=d71c362d70a6b6cb9fe54cc43bfbea8079cca05d4721a7dda951196f543a1ff5af81399a246e0cd68bc590c7bdca388d96c7127217ed637261957047ce725516
doc/src/opam-format/opamTypesBase.ml.html
Source file opamTypesBase.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194(**************************************************************************) (* *) (* Copyright 2012-2015 OCamlPro *) (* Copyright 2012 INRIA *) (* *) (* All rights reserved. This file is distributed under the terms of the *) (* GNU Lesser General Public License version 2.1, with the special *) (* exception on linking described in the file LICENSE. *) (* *) (**************************************************************************) open OpamTypes include OpamCompat let std_path_of_string = function | "prefix" -> Prefix | "lib" -> Lib | "bin" -> Bin | "sbin" -> Sbin | "share" -> Share | "doc" -> Doc | "etc" -> Etc | "man" -> Man | "toplevel" -> Toplevel | "stublibs" -> Stublibs | _ -> failwith "Wrong standard path" let string_of_std_path = function | Prefix -> "prefix" | Lib -> "lib" | Bin -> "bin" | Sbin -> "sbin" | Share -> "share" | Doc -> "doc" | Etc -> "etc" | Man -> "man" | Toplevel -> "toplevel" | Stublibs -> "stublibs" let all_std_paths = [ Prefix; Lib; Bin; Sbin; Share; Doc; Etc; Man; Toplevel; Stublibs ] let string_of_shell = function | SH_fish -> "fish" | SH_csh -> "csh" | SH_zsh -> "zsh" | SH_sh -> "sh" | SH_bash -> "bash" let file_null = "" let pos_file filename = OpamFilename.to_string filename, -1, -1 let pos_null = file_null, -1, -1 let pos_best (f1,_li1,col1 as pos1) (f2,_li2,_col2 as pos2) = if f1 = file_null then pos2 else if f2 = file_null then pos1 else if col1 = -1 then pos2 else pos1 let string_of_pos (file,line,col) = file ^ if line >= 0 then ":" ^ string_of_int line ^ if col >= 0 then ":" ^ string_of_int col else "" else "" let string_of_user_action = function | Query -> "query" | Install -> "install" | Upgrade -> "upgrade" | Reinstall -> "reinstall" | Remove -> "remove" | Switch -> "switch" | Import -> "import" (* Command line arguments *) let env_array l = (* The env list may contain successive bindings of the same variable, make sure to keep only the last *) let bindings = List.fold_left (fun acc (k,v,_) -> OpamStd.String.Map.add k v acc) OpamStd.String.Map.empty l in let a = Array.make (OpamStd.String.Map.cardinal bindings) "" in OpamStd.String.Map.fold (fun k v i -> a.(i) <- String.concat "=" [k;v]; succ i) bindings 0 |> ignore; a let string_of_filter_ident (pkgs,var,converter) = OpamStd.List.concat_map ~nil:"" "+" ~right:":" (function None -> "_" | Some n -> OpamPackage.Name.to_string n) pkgs ^ OpamVariable.to_string var ^ (match converter with | Some (it,ifu) -> "?"^it^":"^ifu | None -> "") let filter_ident_of_string s = match OpamStd.String.rcut_at s ':' with | None -> [], OpamVariable.of_string s, None | Some (p,last) -> let get_names s = List.map (function "_" -> None | s -> Some (OpamPackage.Name.of_string s)) (OpamStd.String.split s '+') in match OpamStd.String.rcut_at p '?' with | None -> get_names p, OpamVariable.of_string last, None | Some (p,val_if_true) -> let converter = Some (val_if_true, last) in match OpamStd.String.rcut_at p ':' with | None -> [], OpamVariable.of_string p, converter | Some (packages,var) -> get_names packages, OpamVariable.of_string var, converter let all_package_flags = [ Pkgflag_LightUninstall; (* Pkgflag_AllSwitches; This has no "official" existence yet and does nothing *) Pkgflag_Verbose; Pkgflag_Plugin; Pkgflag_Compiler; Pkgflag_Conf; ] let string_of_pkg_flag = function | Pkgflag_LightUninstall -> "light-uninstall" | Pkgflag_Verbose -> "verbose" | Pkgflag_Plugin -> "plugin" | Pkgflag_Compiler -> "compiler" | Pkgflag_Conf -> "conf" | Pkgflag_Unknown s -> s let pkg_flag_of_string = function | "light-uninstall" -> Pkgflag_LightUninstall | "verbose" -> Pkgflag_Verbose | "plugin" -> Pkgflag_Plugin | "compiler" -> Pkgflag_Compiler | "conf" -> Pkgflag_Conf | s -> Pkgflag_Unknown s let action_contents = function | `Remove p | `Install p | `Reinstall p | `Build p -> p | `Change (_,_,p) -> p let full_action_contents = function | `Remove p | `Install p | `Reinstall p | `Build p -> [p] | `Change (_,p1,p2) -> [p1; p2] let map_atomic_action f = function | `Remove p -> `Remove (f p) | `Install p -> `Install (f p) let map_highlevel_action f = function | #atomic_action as a -> map_atomic_action f a | `Change (direction, p1, p2) -> `Change (direction, f p1, f p2) | `Reinstall p -> `Reinstall (f p) let map_concrete_action f = function | #atomic_action as a -> map_atomic_action f a | `Build p -> `Build (f p) let map_action f = function | #highlevel_action as a -> map_highlevel_action f a | #concrete_action as a -> map_concrete_action f a let string_of_cause to_string = let list_to_string l = match List.map to_string l with | a::b::c::_::_::_ -> Printf.sprintf "%s, %s, %s, etc." a b c | l -> String.concat ", " l in function | Upstream_changes -> "upstream changes" | Use pkgs -> Printf.sprintf "uses %s" (list_to_string pkgs) | Required_by pkgs -> Printf.sprintf "required by %s" (list_to_string pkgs) | Conflicts_with pkgs -> Printf.sprintf "conflicts with %s" (list_to_string pkgs) | Requested -> "" | Unknown -> "" let map_success f = function | Success x -> Success (f x) | Conflicts c -> Conflicts c let iter_success f = function | Success x -> f x | Conflicts _ -> ()
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>