Skip to content

Repository files navigation

Tmp

test

Temporary directories that are monitored and automatically removed in Elixir.

Installation

The package can be installed by adding tmp to your list of dependencies in mix.exs:

defdepsdo[{:tmp,"~> 0.3.0"}]end

Usage

Define your Tmp module:

defmoduleMyApp.TmpdouseTmpend# Or with a custom base directorydefmoduleMyApp.CustomTmpdouseTmp,base_dir: "/tmp/my_dir"end

Add it to your supervision tree:

children=[{MyApp.Tmp,name: MyApp.Tmp}]

Use it in your code:

MyApp.Tmp.dir(fntmp_dir_path->file_path=Path.join(tmp_dir_path,"my_file")# do work with file_path...# then return a valueEnum.sum([1,2,3])end)# => 6

Options

When calling MyApp.Tmp.dir/2, you can pass the following options:

  • :prefix (optional) - Prefix for the temporary directory name, defaults to nil
  • :base_dir (optional) - Base directory for the temporary directory, defaults to System.tmp_dir() or the value set in use Tmp
  • :timeout (optional) - Timeout in milliseconds, defaults to :infinity

More Examples

MyApp.Tmp.dir(fntmp_dir_path->File.touch(Path.join(tmp_dir_path,"file_one"))# ... other important work2+2end,prefix: "my_app",base_dir: "/tmp/custom_base")# => 4

Docs

Documentation can be found at https://hexdocs.pm/tmp.

License

Tmp is MIT licensed.

About

Temporary monitored directories in Elixir.

Topics

Resources

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages