Packages
persist_config
0.1.2
0.4.56
0.4.55
0.4.54
0.4.53
0.4.52
0.4.51
0.4.50
0.4.49
0.4.48
0.4.47
0.4.46
0.4.45
0.4.44
0.4.43
0.4.42
0.4.41
0.4.40
0.4.39
0.4.38
0.4.37
0.4.36
0.4.35
0.4.34
0.4.33
0.4.32
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.3
0.3.2
0.3.1
0.3.0
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Persists configurations from given files at compile time.
Current section
Files
Jump to
Current section
Files
lib/persist_config.ex
defmodule PersistConfig do
@moduledoc """
Persists the project configuration and puts the
configured application in module attribute :app
or in a module attribute of your choice.
## Usage
```elixir
use PersistConfig
@attr Application.get_env(@app, :attr)
```
```elixir
use PersistConfig, app: :my_app
@my_attr Application.get_env(@my_app, :my_attr)
```
"""
defmacro __using__(options \\ []) do
app = options[:app] || :app
quote bind_quoted: [app: app] do
Mix.Project.config()[:config_path]
|> Mix.Config.read!()
|> Mix.Config.persist()
@external_resource Mix.Project.config()[:config_path] |> Path.expand()
Module.put_attribute(__MODULE__, app, Mix.Project.config()[:app])
end
end
end