Skip to content

jaboatman/AppConf.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 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

About

Simple application configuration for Julia

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%