I have an CLI app in an an application but anytime I want to run to it. I get an error from tzdata
ERROR! Could not start application tzdata: exited in: Tzdata.App.start(:normal, [])
** (EXIT) an exception was raised:
** (MatchError) no match of right hand side value: {:error, {:shutdown, {:failed_to_start_child, Tzdata.EtsHolder, {%File.Error{reason: :enotdir, path: "/home/daniel/personal/projects/blud/blud/tzdata/priv/release_ets", action: "list directory"}, [{File, :ls!, 1, [file: ~c"lib/file.ex", line: 1700]}, {Tzdata.EtsHolder, :release_files_for_dir, 1, [file: ~c"lib/tzdata/ets_holder.ex", line: 127]}, {Tzdata.EtsHolder, :make_sure_a_release_is_on_file, 0, [file: ~c"lib/tzdata/ets_holder.ex", line: 90]}, {Tzdata.EtsHolder, :init, 1, [file: ~c"lib/tzdata/ets_holder.ex", line: 16]}, {:gen_server, :init_it, 2, [file: ~c"gen_server.erl", line: 2057]}, {:gen_server, :init_it, 6, [file: ~c"gen_server.erl", line: 2012]}, {:proc_lib, :init_p_do_apply, 3, [file: ~c"proc_lib.erl", line: 329]}]}}}}
(tzdata 1.1.3) lib/tzdata/tzdata_app.ex:13: Tzdata.App.start/2
(kernel 10.0) application_master.erl:295: :application_master.start_it_old/4
Here are my dependencies:
defp deps do
[
{:req, "~> 0.5.0"},
{:timex, "~> 3.0"},
{:tzdata, "~> 1.1", override: true}
]
end
Note: I put override
property to be true because I found a github issues stating that that would fix issue but it didn’t.
Looking at the error, I see the reason is a :enotdir
error which is correct, the project is actually on /home/daniel/personal/projects/blud
not /home/daniel/personal/projects/blud/blud/
. I don’t know where tzdata pkg is getting that path from. Also looking at the docs for tzdata give no insight into solving this problem as I have tried almost all config stated in the docs. Though the application compiles normally and work when I try in iex but when I use the CLI built using escript that when the tzdata pops up.
Please does anyone know how to go about this? Thanks!!!