auto-build.os.file
Tools to manipulate local files
Is a proxy to babashka.fs tools.
combine-files
(combine-files printers target-filepath & src-filepathes)
Read text content of files src-filepathes
- in the order of the sequence - and combine them into target-filepath
.
copy-action
(copy-action path src-dirpath dst-dirpath options)
(copy-action path src-dirpath dst-dirpath)
Copy a file at path
in a subdir of src-dirpath
to dst-dirpath
.
The options
could be :replace-existing
:copy-attributes
. Returns: * :path
given path * :apath
the absolute path * :type
could be :file
:directory
* :exist?
* :dst-dirpath
* :options
* :relative-path
* :target-path
copy-file
(copy-file src-filepath dst-path options)
Copy src-filepath
to dst-path
, that could be a filepath, or a directory where the file will be stored. Returns nil
create-sym-link
(create-sym-link filepath target)
Creates a sym link to target
linking to filepath
. Returns filepath
create-temp-dir
(create-temp-dir)
(create-temp-dir sub-dir)
Returns a subdirectory path string of the system temporary directory. sub-dir
is an optional string, each one is a sub directory.
create-temp-file
(create-temp-file)
(create-temp-file filepath)
Create a temporary file. - The file is stored in the system temporary directory. - The file is suffixed with filepath
(optional).
delete-dir
(delete-dir dirpath)
Deletes the directory at dirpath
and returns dirpath
if deleted. Returns nil
otherwise
delete-file
(delete-file filepath)
Deletes filepath
and returns it. If filepath
does not exist, returns nil.
delete-path
(delete-path path)
Deletes path
and returns it. Returns nil if the path
does not exists.
do-copy-action
(do-copy-action {:keys [type path dst-dirpath target-path options exist?], :as copy-action})
Do the actual copy of copy-action
, enrich it with :status
(:copy-fail
or :success
)
ensure-dir-exists
(ensure-dir-exists dirpath)
Creates directory dirpath
if not already existing. Return dirpath
if succesful, nil
if creation has failed
ensure-empty-dir
(ensure-empty-dir dirpath)
Ensure the directory dirpath
is existing and empty.
expand-home-str
(expand-home-str path)
Return path
where ~
is expanded to the actual value of the current home directory.
is-existing-dir?
(is-existing-dir? dirpath)
Returns dirpath
if this the path exists and is a directory.
is-existing-file?
(is-existing-file? filepath)
Returns the filepath
if it already exists and is a regular file. Returns nil
otherwise.
make-executable
(make-executable filepath)
Make file filepath
executable. Returns filepath
matching-files
(matching-files dirpath file-pattern)
Match files recursively found in dirpath
that are matching file-pattern
.
modified-since
(modified-since anchor-filepath file-set)
Returns true
if anchor-filepath
is older than one of the file in file-set
.
path-on-disk
(path-on-disk path)
Returns a map with informations on the existance of path
as found on the disk. As all path
functions, it could be a file or a directory.
It returns: * :path
given path * :apath
the absolute path * :type
could be :file
:directory
* :exist?
pp-file
(pp-file filepath file-content)
Pretty print content file-content
into file filepath
.
read-file
(read-file {:keys [errorln uri-str exception-msg], :as _printers} filepath)
Read the file named filepath
.
Returns: * :filepath
as given as a parameter * :afilepath
file with absolute path * :status
is :success
or :file-loading-fail
* :raw-content
(only if :status
is :success
) * :exception
(only if :status
is :file-loading-fail
)
That functions print on the cli: * nothing if successful or if printers are nil * an error message and the message of the exception if the file can’t be read.
search-files
(search-files dirpath pattern options)
(search-files dirpath pattern)
Search files and dirs. * dirpath
is where the root directory of the search-files * pattern
is a regular expression or a glob as described in java doc * options
(Optional, default = {}) are boolean value for :hidden
, :recursive
and :follow-lins
. See babashka fs for details. For instance: * (files/search-files "" "**{.clj,.cljs,.cljc,.edn}")
search all clj file-paths in pwd directory
search-in-parents
(search-in-parents dirpath file-or-dir)
Search file-or-dir
in the parents directories of dirpath
.
write-file
(write-file filepath {:keys [errorln exception-msg normalln uri-str], :as _printers} content)
Write the content
in the file at filepath
.
Returns * :filepath
as given as a parameter * :afilepath
file with absolute path * :status
is :success
or :file-writing-fail
* :raw-content
if file can be read. * :exception
(only if :status
is :file-writing-fail
)