package opam-core
Install
dune-project
Dependency
Authors
-
David Allsopp
-
VVincent Bernardoff <vb@luminar.eu.org>
-
RRaja Boujbel <raja.boujbel@ocamlpro.com>
-
KKate Deplaix <kit-ty-kate@exn.st>
-
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
md5=5f7f90b34d43584c55295236b7e99e47
sha512=596b9372567bba20a40e648b0b714a8b1e0cc3ba8313cf89c814f890a324ce0ba5b4d525ca6a4fa390181b4bddb35cf12b464f7036004bd70f8da843721fb858
doc/opam-core/OpamFilename/index.html
Module OpamFilenameSource
Higher level file and directory name manipulation AND file operations, wrappers on OpamSystem using the filename type
Returns true if string contains '..' between directory separators
Returns true if the character is a directory separator
Returns true if the string is ".." or "." (relative segment)
Directory names
Cleans the contents of a directory, but keeps the directory in place. Noop if directory doesn't exists.
Removes an empty directory, as well as any empty leading path components. Must be called only on a directory that is known to not have empty parents, only internal opam directory (and not tmp dir).
Returns whether a directory is empty. Returns None if the directory could not be found.
val exec :
Dir.t ->
?env:string array ->
?name:string ->
?metadata:(string * string) list ->
?keep_going:bool ->
string list list ->
unitExecute a list of commands in a given directory
Copy directory src to dst, that is, recursively copy the contents of src into dst, overwriting any existing files.
Same as copy_dir except it avoids copying VCS directories (.git, .hg, _darcs)
Provide an automatically cleaned up temp directory to a job
Raw function to create a temporary directory. No automatic cleanup
Create a file from a basename and the current working directory as dirname
Prettify a filename:
- replace /path/to/opam/foo by <opam>/foo
- replace /path/to/home/foo by ~/foo
Open a channel from a given file.
with_open_out_bin filename f opens f and passes the out_channel to f. If f raises an exception, then filename is deleted and then exception is propagated. The out_channel does not have to be closed by f.
with_open_out_bin_atomic filename f opens f and passes the out_channel to f. If f raises an exception, then filename will be unaltered and then exception is propagated. The out_channel does not have to be closed by f.
Removes everything in filename if existed, then write contents instead.
Returns true if the file exists and is a regular file or a symlink to one
Returns the argument as option if it exists and is either a regular file or a symlink to one
Execute a function with a file in a temp directory. It is always cleaned up afterwards.
Provide an automatically cleaned up file in temp directory to a job
List all the filenames, recursively. Exclude VCS directories from selection if except_vcs is set to true. Keep them otherwise.
Returns alll the files, including dangling symlinks (which means that not all entries will satisfy exists).
Copy a file in a directory. If root is set, copy also the sub-directories. For instance, copy_in ~root:"/foo" "/foo/bar/gni" "/toto" creates "/toto/bar/gni".
val install :
?warning:OpamSystem.install_warning_fn ->
?exec:bool ->
src:t ->
dst:t ->
unit ->
unitInstalls a file to a destination. Optionally set if the destination should be set executable
Symlink a file. If symlink is not possible on the system, use copy instead. With relative, creates a relative link through the closest common ancestor directory if possible. Otherwise, the symlink is absolute.
Extract an archive in a given directory (it rewrites the root to match Dir.t dir if needed)
Same as extract, as an OpamProcess.job
Extract a generic file
dir starts_with pfx dir Check whether dir starts with pfx
val patch :
allow_unclean:bool ->
[ `Patch_file of t | `Patch_diffs of Patch.t list ] ->
Dir.t ->
(Patch.operation list, exn) resultpatch ~allow_unclean patch_source dir applies a patch to directory dir. The patch source can be either `Patch_file filename for a patch file, or `Patch_diffs diffs for a list of file-level changes.
parse_patch ~dir patch_file processes and parses a patch file. Returns the parsed patch diffs or raises an exception if the patch file doesn't exist or can't be parsed.
Returns the closest parent of a directory (including itself) for which the predicate holds, if any
Locking
See OpamSystem.flock. Prefer the higher level with_flock functions when possible
val with_flock :
[< OpamSystem.lock_flag ] ->
?dontblock:bool ->
t ->
(Unix.file_descr -> 'a) ->
'aCalls f while holding a lock file. Ensures the lock is properly released on f exit. f is passed the file_descr of the lock.
val with_flock_upgrade :
[< OpamSystem.actual_lock_flag ] ->
?dontblock:bool ->
OpamSystem.lock ->
(Unix.file_descr -> 'a) ->
'aCalls f with the file lock upgraded to at least flag, then restores the previous lock level. Upgrade to `Lock_write should never be used in blocking mode as it would deadlock.
val with_flock_write_then_read :
?dontblock:bool ->
t ->
(Unix.file_descr -> 'a) ->
('a -> 'b) ->
'bRuns first function with a write lock on the given file, then releases it to a read lock and runs the second function.
Convert a filename to an attribute, relatively to a root