package shell
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=d6f76ca1c3e7fa523da5affe9c1ebb74fe17bec2a2f22c239746b72905bc5f61
doc/shell.filename_extended/Filename_extended/index.html
Module Filename_extended
Source
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.
parent path
The parent of the root directory is the root directory
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.
Splits a given path into a list of strings.
dual to explode
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.