Homebrew Rezept ohne URL

5

Ist es möglich, eine Homebrew-Formel zu erstellen, für deren Download keine URL erforderlich ist?

In meinem Fall hängt das Rezept nur von anderen Rezepten ab und installiert ein Homebrew-spezifisches Shell-Skript.

class Test < Formula
  desc "Test"
  homepage "https://test.com"
  version "1.0"

  depends_on "yschimke/tap/oksocial"

  def install
    (bin+"testoksocial").write <<-EOS.undent
        #!/bin/sh

        echo Hello
    EOS
  end
end

Aber läuft dies gibt

$ brew install ./test.rb
Error: formulae require at least a URL
Please report this bug:
    https://git.io/brew-troubleshooting
/usr/local/Library/Homebrew/formula.rb:193:in `determine_active_spec'
Yuri Schimke
quelle
1
brew ist ein Paketmanager. Was möchten Sie eigentlich mit Ihrer Formel erreichen?
Alistair McMillan
Installieren Sie einen Befehl (Shell-Skript), der Abhängigkeiten von anderen Homebrew-Zielen aufweist. Ich kann die Skripte im Tarball ablegen, aber wenn ich sie während der Installation neu schreiben muss, z. B. basierend auf optionalen Abhängigkeiten, erscheint das Archiv sinnlos, da das Rezept den Befehl ausschreiben kann.
Yuri Schimke

Antworten:

5

Sie müssen eine URL in Ihrer Quittung verwenden, die obligatorisch ist.

Sie müssen nicht das URL-Schema http (s) verwenden, sondern können auch file: verwenden. Wenn Sie keinen Inhalt benötigen, können Sie die Datei / dev / null verwenden. Es kann sogar eine Prüfsumme geben, um die entsprechende Warnung auszuschalten.

url "file:///dev/null"
sha256 "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
B. Ehlers
quelle
2

Ich habe es funktioniert, indem ich eine leere TAR-Datei erstellt und eine Verknüpfung zu dieser erstellt habe. Aber ich bin gespannt, ob es bessere Möglichkeiten gibt.

$ tar cvf empty.tar --files-from /dev/null
Yuri Schimke
quelle
Das könnte "funktionieren", aber ich bin mir nicht sicher, ob die Brauentwickler diese Formel akzeptieren würden, wenn Sie sie ihnen vorlegen. Wahrscheinlich besser auf GitHub hier als auf Ask Different fragen.
Alistair McMillan
Es ist für einen privaten Zweck gedacht, nicht für das öffentliche Repo. Interne Tools usw.
Yuri Schimke