Erlang: How to define config file variables?2019 Community Moderator ElectionHow to import a module given the full path?How can I show line numbers in Eclipse?How to define custom configuration variables in railsErlang: “extending” an existing module with new functionsSpeed comparison with Project Euler: C vs Python vs Erlang vs HaskellDifference between <context:annotation-config> vs <context:component-scan>How should i define something constantlike in Erlanghow to define grails.plugin.elfinder.rootDir in external config fileHow to invoke Erlang function with variable?Define variable in Spring config file to have access to external folder with images

The (Easy) Road to Code

PTIJ: Sport in the Torah

What is the purpose of a disclaimer like "this is not legal advice"?

A running toilet that stops itself

How to install "rounded" brake pads

How to educate team mate to take screenshots for bugs with out unwanted stuff

Should I file my taxes? No income, unemployed, but paid 2k in student loan interest

Do I need a return ticket to Canada if I'm a Japanese National?

Can Witch Sight see through Mirror Image?

What is the orbit and expected lifetime of Crew Dragon trunk?

Is "cogitate" used appropriately in "I cogitate that success relies on hard work"?

Is it a Cyclops number? "Nobody" knows!

Generating a list with duplicate entries

Short story about cities being connected by a conveyor belt

Why is there an extra space when I type "ls" on the Desktop?

Why do phishing e-mails use faked e-mail addresses instead of the real one?

How do you make a gun that shoots melee weapons and/or swords?

Unidentified signals on FT8 frequencies

What would be the most expensive material to an intergalactic society?

Why do we say 'Pairwise Disjoint', rather than 'Disjoint'?

Does an unused member variable take up memory?

Was this cameo in Captain Marvel computer generated?

Short SF story. Females use stingers to implant eggs in yearfathers

Create chunks from an array



Erlang: How to define config file variables?



2019 Community Moderator ElectionHow to import a module given the full path?How can I show line numbers in Eclipse?How to define custom configuration variables in railsErlang: “extending” an existing module with new functionsSpeed comparison with Project Euler: C vs Python vs Erlang vs HaskellDifference between <context:annotation-config> vs <context:component-scan>How should i define something constantlike in Erlanghow to define grails.plugin.elfinder.rootDir in external config fileHow to invoke Erlang function with variable?Define variable in Spring config file to have access to external folder with images










2















I'm new in Erlang and I have a question about .config files:
I have a configuration file with:



path, "/mnt/test/".
name, "Joe".


The path and the name could be changed by a user. As I know, there is a way to save those variables in a module by usage of file:consult/1 in



-define(VARIABLE, <parsing of the config file>).


Are there any better ways to read a config file when the module begins to work without making a parsing function in -define? (As I know, according to Erlang developers, it's not the best way to make a complicated functions in -define)



Thanks in advance.










share|improve this question


























    2















    I'm new in Erlang and I have a question about .config files:
    I have a configuration file with:



    path, "/mnt/test/".
    name, "Joe".


    The path and the name could be changed by a user. As I know, there is a way to save those variables in a module by usage of file:consult/1 in



    -define(VARIABLE, <parsing of the config file>).


    Are there any better ways to read a config file when the module begins to work without making a parsing function in -define? (As I know, according to Erlang developers, it's not the best way to make a complicated functions in -define)



    Thanks in advance.










    share|improve this question
























      2












      2








      2








      I'm new in Erlang and I have a question about .config files:
      I have a configuration file with:



      path, "/mnt/test/".
      name, "Joe".


      The path and the name could be changed by a user. As I know, there is a way to save those variables in a module by usage of file:consult/1 in



      -define(VARIABLE, <parsing of the config file>).


      Are there any better ways to read a config file when the module begins to work without making a parsing function in -define? (As I know, according to Erlang developers, it's not the best way to make a complicated functions in -define)



      Thanks in advance.










      share|improve this question














      I'm new in Erlang and I have a question about .config files:
      I have a configuration file with:



      path, "/mnt/test/".
      name, "Joe".


      The path and the name could be changed by a user. As I know, there is a way to save those variables in a module by usage of file:consult/1 in



      -define(VARIABLE, <parsing of the config file>).


      Are there any better ways to read a config file when the module begins to work without making a parsing function in -define? (As I know, according to Erlang developers, it's not the best way to make a complicated functions in -define)



      Thanks in advance.







      configuration erlang otp






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 2 days ago









      Nick SawNick Saw

      394




      394






















          1 Answer
          1






          active

          oldest

          votes


















          4














          If you need to store config only when you start the application - you may use application config file which is defined in 'rebar.config'



          profiles, [
          local,
          [relx, [
          dev_mode, false,
          include_erts, true,
          include_src, false,
          vm_args, "config/local/vm.args"]
          sys_config, "config/local/yourapplication.config"]
          ]

          ].


          more info about this here: rebar3 configuration



          next step to create yourapplication.config - store it in your application folder /app/config/local/yourapplication.config



          this configuration should have structure like this example



          [

          yourapplicationname, [
          path, "/mnt/test/",
          name, "Joe"
          ]

          ].


          so when your application is started
          you can get the whole config data with



          ok, "/mnt/test/" = application:get_env(yourapplicationname, path)
          ok, "Joe" = application:get_env(yourapplicationname, name)


          and now you may -define this variables like:



          -define(VARIABLE,
          case application:get_env(yourapplicationname, path) of
          ok, Data -> Data
          _ -> undefined
          end
          ).





          share|improve this answer

























          • Thank you for detailed answer! Another question is how to make these two variables global for the module? As I understand, the only way is to declare the variables by application:get_env in "-define", am I right? P.S. without ets/dets/mnesia usage

            – Nick Saw
            2 days ago












          • @NickSaw updated the answer (added -define variable)

            – Eugen Dubrovin
            2 days ago











          • Thank you for reply, I understand

            – Nick Saw
            2 days ago










          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55019302%2ferlang-how-to-define-config-file-variables%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4














          If you need to store config only when you start the application - you may use application config file which is defined in 'rebar.config'



          profiles, [
          local,
          [relx, [
          dev_mode, false,
          include_erts, true,
          include_src, false,
          vm_args, "config/local/vm.args"]
          sys_config, "config/local/yourapplication.config"]
          ]

          ].


          more info about this here: rebar3 configuration



          next step to create yourapplication.config - store it in your application folder /app/config/local/yourapplication.config



          this configuration should have structure like this example



          [

          yourapplicationname, [
          path, "/mnt/test/",
          name, "Joe"
          ]

          ].


          so when your application is started
          you can get the whole config data with



          ok, "/mnt/test/" = application:get_env(yourapplicationname, path)
          ok, "Joe" = application:get_env(yourapplicationname, name)


          and now you may -define this variables like:



          -define(VARIABLE,
          case application:get_env(yourapplicationname, path) of
          ok, Data -> Data
          _ -> undefined
          end
          ).





          share|improve this answer

























          • Thank you for detailed answer! Another question is how to make these two variables global for the module? As I understand, the only way is to declare the variables by application:get_env in "-define", am I right? P.S. without ets/dets/mnesia usage

            – Nick Saw
            2 days ago












          • @NickSaw updated the answer (added -define variable)

            – Eugen Dubrovin
            2 days ago











          • Thank you for reply, I understand

            – Nick Saw
            2 days ago















          4














          If you need to store config only when you start the application - you may use application config file which is defined in 'rebar.config'



          profiles, [
          local,
          [relx, [
          dev_mode, false,
          include_erts, true,
          include_src, false,
          vm_args, "config/local/vm.args"]
          sys_config, "config/local/yourapplication.config"]
          ]

          ].


          more info about this here: rebar3 configuration



          next step to create yourapplication.config - store it in your application folder /app/config/local/yourapplication.config



          this configuration should have structure like this example



          [

          yourapplicationname, [
          path, "/mnt/test/",
          name, "Joe"
          ]

          ].


          so when your application is started
          you can get the whole config data with



          ok, "/mnt/test/" = application:get_env(yourapplicationname, path)
          ok, "Joe" = application:get_env(yourapplicationname, name)


          and now you may -define this variables like:



          -define(VARIABLE,
          case application:get_env(yourapplicationname, path) of
          ok, Data -> Data
          _ -> undefined
          end
          ).





          share|improve this answer

























          • Thank you for detailed answer! Another question is how to make these two variables global for the module? As I understand, the only way is to declare the variables by application:get_env in "-define", am I right? P.S. without ets/dets/mnesia usage

            – Nick Saw
            2 days ago












          • @NickSaw updated the answer (added -define variable)

            – Eugen Dubrovin
            2 days ago











          • Thank you for reply, I understand

            – Nick Saw
            2 days ago













          4












          4








          4







          If you need to store config only when you start the application - you may use application config file which is defined in 'rebar.config'



          profiles, [
          local,
          [relx, [
          dev_mode, false,
          include_erts, true,
          include_src, false,
          vm_args, "config/local/vm.args"]
          sys_config, "config/local/yourapplication.config"]
          ]

          ].


          more info about this here: rebar3 configuration



          next step to create yourapplication.config - store it in your application folder /app/config/local/yourapplication.config



          this configuration should have structure like this example



          [

          yourapplicationname, [
          path, "/mnt/test/",
          name, "Joe"
          ]

          ].


          so when your application is started
          you can get the whole config data with



          ok, "/mnt/test/" = application:get_env(yourapplicationname, path)
          ok, "Joe" = application:get_env(yourapplicationname, name)


          and now you may -define this variables like:



          -define(VARIABLE,
          case application:get_env(yourapplicationname, path) of
          ok, Data -> Data
          _ -> undefined
          end
          ).





          share|improve this answer















          If you need to store config only when you start the application - you may use application config file which is defined in 'rebar.config'



          profiles, [
          local,
          [relx, [
          dev_mode, false,
          include_erts, true,
          include_src, false,
          vm_args, "config/local/vm.args"]
          sys_config, "config/local/yourapplication.config"]
          ]

          ].


          more info about this here: rebar3 configuration



          next step to create yourapplication.config - store it in your application folder /app/config/local/yourapplication.config



          this configuration should have structure like this example



          [

          yourapplicationname, [
          path, "/mnt/test/",
          name, "Joe"
          ]

          ].


          so when your application is started
          you can get the whole config data with



          ok, "/mnt/test/" = application:get_env(yourapplicationname, path)
          ok, "Joe" = application:get_env(yourapplicationname, name)


          and now you may -define this variables like:



          -define(VARIABLE,
          case application:get_env(yourapplicationname, path) of
          ok, Data -> Data
          _ -> undefined
          end
          ).






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 2 days ago

























          answered 2 days ago









          Eugen DubrovinEugen Dubrovin

          698312




          698312












          • Thank you for detailed answer! Another question is how to make these two variables global for the module? As I understand, the only way is to declare the variables by application:get_env in "-define", am I right? P.S. without ets/dets/mnesia usage

            – Nick Saw
            2 days ago












          • @NickSaw updated the answer (added -define variable)

            – Eugen Dubrovin
            2 days ago











          • Thank you for reply, I understand

            – Nick Saw
            2 days ago

















          • Thank you for detailed answer! Another question is how to make these two variables global for the module? As I understand, the only way is to declare the variables by application:get_env in "-define", am I right? P.S. without ets/dets/mnesia usage

            – Nick Saw
            2 days ago












          • @NickSaw updated the answer (added -define variable)

            – Eugen Dubrovin
            2 days ago











          • Thank you for reply, I understand

            – Nick Saw
            2 days ago
















          Thank you for detailed answer! Another question is how to make these two variables global for the module? As I understand, the only way is to declare the variables by application:get_env in "-define", am I right? P.S. without ets/dets/mnesia usage

          – Nick Saw
          2 days ago






          Thank you for detailed answer! Another question is how to make these two variables global for the module? As I understand, the only way is to declare the variables by application:get_env in "-define", am I right? P.S. without ets/dets/mnesia usage

          – Nick Saw
          2 days ago














          @NickSaw updated the answer (added -define variable)

          – Eugen Dubrovin
          2 days ago





          @NickSaw updated the answer (added -define variable)

          – Eugen Dubrovin
          2 days ago













          Thank you for reply, I understand

          – Nick Saw
          2 days ago





          Thank you for reply, I understand

          – Nick Saw
          2 days ago



















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55019302%2ferlang-how-to-define-config-file-variables%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          1928 у кіно

          Захаров Федір Захарович

          Ель Греко