Как установить целый каталог файлов с помощью Homebrew? - PullRequest
0 голосов
/ 13 февраля 2020

Я использую Homebrew для установки скрипта, который зависит от того, каталог ресурсов находится в том же каталоге, что и скрипт. Например:

.
├── directory/
└── script.sh

Как создать каталог, в котором script.sh устанавливается вместе с Homebrew? Я пробовал мою формулу как:

class Script < Formula
  ...
  def install
    bin.install "script.sh"
    bin.install "directory/"
  end
end

Проблема в том, что script.sh и directory/ установлены на /usr/local/Cellar/script/, но только script.sh установлены на /usr/local/bin/.

Я также пытался заменить bin.install "directory/ на bin.install Dir["directory/"], но это не решило проблему.

Как бы я сделал так, чтобы script.sh мог видеть directory/, который находится в /usr/local/Cellar/script/directory/ из моей формулы? Могу ли я использовать символьную ссылку из /usr/local/bin в моей формуле?

1 Ответ

1 голос
/ 13 февраля 2020

Это распространенный шаблон в формулах Homebrew. Решение состоит не в том, чтобы установить каталог в bin/, так как этот каталог должен содержать только исполняемые файлы, а в том, чтобы установить скрипт и каталог в каком-то месте, а затем создать оболочку в bin/, которая вызывает скрипт из Это место *

Полная формула:

class Myformula < Formula
  desc "..."
  homepage "..."
  url "..."
  sha256 "..."

  def install
    libexec.install Dir["*"]
    bin.write_exec_script libexec/"script.sh"
  end
end
...