package shell
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ec30eaec1b95543bdad774f378f2d90e5f271a1c734c1a4e8f5c1ac0872b5116
md5=db24c0f66777493987436aed423aec76
doc/shell.filename_extended/Filename_extended/index.html
Module Filename_extended
Extensions to Core.Core_filename
.
normalize path
Removes as much "." and ".." from the path as possible. If the path is absolute they will all be removed.
make_relative ~to_:src f
returns f
relative to src
.
make_absolute src
Turn src
into an absolute path expanded from the current working directory.
expand
Makes a path absolute and expands ~
~username
to home directories. In case of error (e.g.: path home of a none existing user) raises Failure
with a (hopefully) helpful message.
Filename.compare is a comparison that normalizes filenames ("./a" = "a"), uses a more human ready algorithm based on String_extended.collate
("rfc02.txt > rfc1.txt") and extenstions ("a.c" > "a.h").
It is a total comparison on normalized filenames.
val with_open_temp_file :
?in_dir:string ->
?write:(out_channel -> unit) ->
f:(string -> 'a) ->
string ->
string ->
'a
with_open_temp_file ~write ~f prefix suffix
create a temporary file; runs write
on its out_channel
and then f
on the resulting file. The file is removed once f
is done running.
Runs f
with a temporary dir as option and removes the directory afterwards.
is_parent dir1 dir2
returns true
if dir1
is a parent of dir2
Note: This function is context independent, use expand
if you want to consider relatives paths from a given point.
In particular:
- A directory is always the parent of itself.
- The root is the parent of any directory
- An absolute path is never the parent of relative one and vice versa.
"../../a"
is never the parent of"."
even if this could be true given form the current working directory.