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. For more options, visit https://groups.google.com/d/optout.
