Ошибка Mix.Shell.cmd при обновлении до elixir 1.6.1

Мой код отлично работал на эликсире 1.5.2, а затем я обновился до эликсира 1.6.1. Это дало мне Mix.Shell.cmd/2 неопределенная или частная ошибка. это код

   def run(args) do
     file = List.first(args) || "priv/static/apiv1docs.json"
     Mix.Shell.cmd("rm -rf " <> file, &IO.puts(&1))
     IO.puts("Removed " <> file)
   end

Это дало мне ошибку. Mix.Shell.cmd/2 не определено или частная ошибка. Вы имели в виду один из cmd/3.

Раньше на 1.5.2 работало нормально.

Любая помощь приветствуется

Спасибо


person script    schedule 07.02.2018    source источник


Ответы (1)


Mix.Shell.cmd принимает 3 аргумента:

cmd(command, options, callback)

Вы можете передать пустой список в качестве второго аргумента, чтобы использовать параметры по умолчанию.

Документацию можно посмотреть здесь

В 1.5.2 определение функции имело [] в качестве значения по умолчанию для параметров:

cmd(command, options \\ [], callback)

. Я не уверен, почему они изменили это

Mix.Shell.cmd/3 v1.5.2

person praise the sun    schedule 07.02.2018
comment
Я бы сообщил об этом как о проблеме; не было предупреждения об обесценивании, он должен быть обратно совместим. - person Grych; 07.02.2018