I created a mochiweb instance
src/
|-- Makefile
|-- room.erl
|-- myserver.app
|-- myserver.erl
|-- myserver_app.erl
|-- myserver_deps.erl
|-- myserver_sup.erl
|-- myserver_web.erl
`-- uuid.erl
in myserver_web.erl
I am able to access the application config
{ok, "0.0.1"} = application:get_key(vsn),
However in room.erl
, I am not able to access the application config (specifically the env
list).
undefined = application:get_key(vsn),
The supervisor does not start the room, nor do I want it too.
I'm new to OTP and I realize I'm probably doing something stupid, but I would really appreciate anyone's help.
Cheers!
From the Erlang documentation about the application:get_key/1-2 function:
Returns the value of the application
specification key Key for Application.
If the application argument is
omitted, it defaults to the
application of the calling process.
What's the application of my_server_web.erl? What's the application of room.erl?
If the specified application is not
loaded, or the specification key does
not exist, or if the process executing
the call does not belong to any
application, the function returns
undefined.
Is the key specified? Is the application loaded?
Regarding the "env" key, you can use the application:get_env/1 function instead.
I figured it out... The answer is quite stupid and I feel silly posting, but I hope someone else can benefit from me.
I was actually doing everything right (as are all the other answers), but I was using mochiweb's auto reloader and not actually stopping the server. Once I did that everything was fine.
DOH! Sorry!
Use get_key(myserver, vsn)
instead. Note that the application needs to be loaded first.