Config.Reader

Config.Reader

Config로 정의한 설정 파일을 읽는 API예요. 설정 파일을 파싱하고 평가(eval)해서 시스템에서 쓰는 설정 값으로 바꿔 주는 역할을 해요.

출처: Config.Reader

본문

프로바이더로서 사용하기(As a provider)

Config.ReaderConfig.Provider로도 쓸 수 있어요. 설정 프로바이더는 릴리스 배포 시 애플리케이션이 설정되는 방식을 커스터마이즈하는 데 쓰이죠. 프로바이더로 사용할 때는 인자를 하나만 받아요 — 바로 시스템 부팅 중에 읽고 로드할 파일의 설정 경로입니다(Config.Provider.config_path/0에 정리되어 있어요).

예를 들어 대상 시스템에 절대 경로 위치에 설정 파일이 있을 거라고 예상한다면, mix.exsdef project 부분 안에 이렇게 추가하면 돼요.

releases: [
  demo: [
    config_providers: [
      {Config.Reader, "/etc/config.exs"}
    ]
  ]
]

아니면 릴리스 안의 커스텀 경로를 읽고 싶다면 이렇게 하면 됩니다.

config_providers: [{Config.Reader, {:system, "RELEASE_ROOT", "/config.exs"}}]

리더(reader)에 옵션의 키워드 리스트를 넘길 수도 있는데, 이때 :path는 필수 키예요.

config_providers: [
  {Config.Reader,
   path: "/etc/config.exs",
   env: :prod,
   imports: :disabled}
]

Mix가 이미 기본적으로 config/runtime.exs를 로드한다는 점을 기억하세요. 더 많은 예시와 시나리오는 Config.Provider 모듈을 참고해요.

Summary(요약)

Types

  • config_opts()

Functions

  • eval!(file, contents, opts \\\\ []) — 주어진 file에 대해 설정 contents를 평가해요.
  • merge(config1, config2) — 두 설정을 병합해요.
  • read!(file, opts \\\\ []) — 설정 파일을 읽어요.
  • read_imports!(file, opts \\\\ []) — 주어진 설정 파일을 읽고, import를 포함한 설정을 반환해요.

더 알아보기