Here is the link to the PR (already in 
master): https://github.com/elixir-lang/elixir/pull/8846

On Monday, March 4, 2019 at 9:35:26 AM UTC+1, Fl4m3Ph03n1x wrote:
>
> Let us know if/when it gets accepted please !
> Also, add a link, would love to see the work!
>
> On Friday, 1 March 2019 20:39:51 UTC+1, Andrea Leopardi wrote:
>>
>> I'm working on it, PR will be up in a few minutes.
>>
>> Andrea Leopardi
>> [email protected]
>>
>>
>> On Fri, Mar 1, 2019 at 10:00 AM José Valim <[email protected]> 
>> wrote:
>>
>>> I agree. But it should be called System.fetch_env!/2 and we should have 
>>> System.fetch_env/2 too. PR is welcome.
>>>
>>>
>>> *José Valim*
>>> www.plataformatec.com.br
>>> Skype: jv.ptec
>>> Founder and Director of R&D
>>>
>>>
>>> On Fri, Mar 1, 2019 at 9:38 AM <[email protected]> wrote:
>>>
>>>> I really would to see something like this on elixir. I suggested 
>>>> something really similar, the addition of an `fetch_env!` function to the 
>>>> System module. 
>>>> https://groups.google.com/forum/#!msg/elixir-lang-core/gijvoPm-a-0/Y2TzcHaiBgAJ
>>>>
>>>>
>>>> Em sexta-feira, 1 de março de 2019 14:03:03 UTC-3, Fl4m3Ph03n1x 
>>>> escreveu:
>>>>>
>>>>> Background
>>>>> I know this was proposed before and refuted: 
>>>>> https://github.com/elixir-lang/elixir/issues/5608
>>>>>
>>>>> However, I recently had an issue that would have benefited from 
>>>>> System.get_env! and was advised to create a proposal in this group and 
>>>>> reopen the discussion.
>>>>>
>>>>> What was the issue?
>>>>> Imagine you have a config.exs where you define some configurations. 
>>>>> Imagine one of the configurations is the following:
>>>>>
>>>>> config :my_app,
>>>>>   geolix_db_path: System.get_env("PROJECTS_PATH") <> 
>>>>> "/my_app/lib/geoip/GeoLite2-Country.mmdb"
>>>>>
>>>>> Now this may look normal, but what if you don't have the "PROJETCS_PATH" 
>>>>> variable defined? 
>>>>> What error do you think you would get?
>>>>>
>>>>> We got this:
>>>>>
>>>>> ** (ArgumentError) argument error
>>>>> (stdlib) eval_bits.erl:101: :eval_bits.eval_exp_field1/6
>>>>> (stdlib) eval_bits.erl:92: :eval_bits.eval_field/3
>>>>> (stdlib) eval_bits.erl:68: :eval_bits.expr_grp/4
>>>>> (stdlib) erl_eval.erl:484: :erl_eval.expr/5
>>>>> (stdlib) erl_eval.erl:888: :erl_eval.expr_list/6
>>>>> (stdlib) erl_eval.erl:240: :erl_eval.expr/5
>>>>> (stdlib) erl_eval.erl:232: :erl_eval.expr/5
>>>>>
>>>>> What now?
>>>>> If you find this error message borderline useless and beyond cryptic, 
>>>>> then you are with me. 
>>>>> The problem is that the stacktrace is obfuscated while the config file is 
>>>>> being evaluated. 
>>>>>
>>>>> The WHY of the proposal
>>>>> A way of avoiding this would be to have a System.get_env! that blows 
>>>>> immediately making the error very clear. 
>>>>> I know I can use || raise "error" but I would like to avoid that every 
>>>>> time I use System.get_env in a config file (or somewhere else  for that 
>>>>> matter).
>>>>>
>>>>> Have you imagined what is like reading a config.ex file hundreds of lines 
>>>>> long while using the || raise trick? 
>>>>> We already have trouble managing our huge config files, adding this would 
>>>>> make it even worst.
>>>>>
>>>>> Additional info
>>>>> This discussion was generated from the forums. The original post with all 
>>>>> the information can be seen here:
>>>>>
>>>>> https://elixirforum.com/t/mix-exs-does-not-compile/20516
>>>>>
>>>>> -- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "elixir-lang-core" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/elixir-lang-core/9b535dab-41b5-4caf-a7fc-b9e918aeffa0%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/elixir-lang-core/9b535dab-41b5-4caf-a7fc-b9e918aeffa0%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "elixir-lang-core" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4J7xZsKNGPo6qgLcbohbP9oMM89D_zWobKwgQ%3DFPYVvHA%40mail.gmail.com
>>>  
>>> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4J7xZsKNGPo6qgLcbohbP9oMM89D_zWobKwgQ%3DFPYVvHA%40mail.gmail.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/eebd41c5-0259-4325-a75c-dd23c293f4e9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to