Persist Config v0.3.2 PersistConfig View Source

Persists, at compile time, a list of configuration files and puts the current application name in a module attribute.

Also includes macros for concise configuration value retrieval.

use PersistConfig

Supports the following options:

  • :app - module attribute to hold the current application name, defaults to :app
  • :files - (wildcard) paths, defaults to ["config/persist*.exs"]

Option :files lists the configuration files to be persisted. These are typically imported in the config/config.exs file. For example: import_config "persist_this_config.exs".

Each entry represents a (wildcard) path relative to the root. If the list is or ends up being empty, no files are persisted.

When your project is used as a dependency, this package will allow the specified configuration files to be persisted.

For example, if you configured some path to read an external file and want to still read that file when your app is a dependency (without any path configuration in the parent app).

Usage

use PersistConfig, files: ["config/persist_path.exs"]
...
@all_env Application.get_all_env(@app)
@path fetch_env(:path)
use PersistConfig, app: :my_app
...
@my_attr fetch_env(@my_app, :my_attr)

Installation

Add persist_config to your list of dependencies in mix.exs. Also include the configuration files to be persisted in the package definition of mix.exs as shown below:

def project do
  [
    app: :your_app,
    ...
    deps: deps(),
    package: package(),
    ...
  ]
end
...
def deps do
  [
    {:persist_config, "~> 0.3"}
  ]
end
...
defp package do
  [
    files: ["lib", "mix.exs", "README*", "config/persist*.exs"],
    maintainers: ["***"],
    licenses: ["***"],
    links: %{...}
  ]
end

Link to this section Summary

Functions

Returns the value for key in the current application's environment.

Returns the value for key in app's environment.

Link to this section Functions

Link to this macro

fetch_env(key)

View Source (macro) (since 0.3.0)

Returns the value for key in the current application's environment.

If the configuration parameter does not exist, returns :error.

Link to this macro

fetch_env(app, key)

View Source (macro) (since 0.3.0)

Returns the value for key in app's environment.

If the configuration parameter does not exist, returns :error.