Tmp
Temporary directories that are monitored and automatically removed.
Installation
The package can be installed by adding tmp to your list of dependencies in mix.exs:
def deps do
[
{:tmp, "~> 0.1.0"}
]
endUsage
Tmp.dir/2 accepts a function that will be called with the path of a new temporary directory.
If the function returns or the calling process exits the temporary directory is removed.
Tmp.dir(fn tmp_dir_path ->
# ... do work with tmp_dir_path
end)Options:
:prefix(optional) prefix for the temporary directory, defaults tonil:base_dir(optional) base directory of the temprorary directory, defaults toSystem.tmp_dir():timeout(optional) a timeout in milliseconds, defaults to:infinity
Tmp.dir(fn tmp_dir_path ->
File.touch(Path.join(tmp_dir_path, "file_one"))
# ... other important work
2 + 2
end, prefix: "yolo", base_dir: "/tmp/my_app")
# => 4path_to_debug =
Tmp.dir(fn tmp_dir_path ->
# call `Tmp.keep()` to keep dir for debugging
Tmp.keep()
tmp_dir_path
end)Config
To configure the default base dir:
config :tmp, default_base_dir: "/tmp/my_dir"Docs
Documentation can be found at https://hexdocs.pm/tmp.
License
Tmp is MIT licensed.