Запустить скрипт по относительному пути через System.cmd в elixir

#command-line #elixir

#командная строка #elixir

Вопрос:

У меня есть проект с исполнительным файлом в нем: ./bin/dcolors

Итак, я хочу запустить этот файл через System.cmd/3 . Как я могу это сделать?

Мои попытки

Сначала: запустите просто ./bin/dcolors .

 System.cwd # => project path
System.cmd("./bin/dcolors", []) # => :enoent
  

Ответ №1:

В документации для System#cmd/3 говорится:

command ожидается, что это исполняемый файл, доступный в PATH , если не указан абсолютный путь.

Поскольку ./bin предполагается, что его нет в пути, можно использовать абсолютный путь, полученный через System#cwd/0 и объединенный с относительным с помощью Path#join/2 :

 System.cwd
|> Path.join("bin/dcolors")
|> System.cmd([])