Skip to content

JuliaPackageMirrors/AppConf.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AppConf.jl

Build Status

A simple configuration module for Julia applications. Implements a basic syntax for a configuration file, and manages an environment variable JULIA_ENV to manage code differences for development and production environments.

Basic Configuration

When using AppConf, call parseconf with a path to your configuration file to load it.

using AppConf

parseconf("app.conf")

Where app.conf contains basic name-value pairs:

log.level=DEBUG
app.secret="provoke-dance-surveillance-friend"
session.timeout=60
require.auth=false

Then, the global variable conf will be a dictionary populated with those items.

julia> conf
Dict{AbstractString,Any} with 4 entries:
  "require.auth"    => false
  "app.secret"      => "provoke-dance-surveillance-friend"
  "log.level"       => "DEBUG"
  "session.timeout" => 60

Supported Values

Values will be interpreted as strings or numbers based on their structure. Strings can optionally be in double quotes. Arrays are also supported with the following syntax:

arr=["one", 2, three]

Is parsed into:

Dict{AbstractString,Any}("arr" => Any["one",2,"three"])

Using JULIA_ENV

The variable JULIA_ENV is set to "dev" by default. It can be overridden by setting its value in the system environment, or by setting env in the config file. The macros @dev and @prod allow code blocks to be specified to compile in only one environment.

@dev begin
  println("I'm on your laptop")
end
@prod begin
  println("I'm on your server")
end

TODO

Support full HOCON syntax to emulate TypeSafe config library.