Often when working on projects I find it's common to do certain 
initializations when Julia starts. This generally includes setting certain 
configurations, declaring environment variables, setting up connections etc 
before my code begins to run. Basically, something that looks like this:

if isfile("some_initializer.jl")
   # ...
end

Wouldn't it be more convenient to have a convention where Julia checks for 
the existence of a runtime configuration .juliarc.jl file in the working 
directory and executes it at startup if it exists? Other languages and 
interactive environments such as R (.Rprofile) have implemented this 
capability and can be very useful.

It's not terribly difficult to implement, either. The following code 
recursively traverses up the directory structure calling any .juliarc.jl 
configuration files it encounters in reverse order:

function loadrc(path::String)
  if (path == ENV["HOME"] || path == "/")
    return ""
  end

  loadrc(dirname(path))
  juliarc = joinpath(path, ".juliarc.jl")

  if isfile(juliarc)
    println("Loading config file:", juliarc)
    include(juliarc)
  end
end

loadrc(pwd())

Perhaps this should be done by default?

Reply via email to